// Copyright 2026 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

import type {protobuf as $protobuf} from "google-gax";
import Long = require("long");
/** Namespace google. */
export namespace google {

    /** Namespace container. */
    namespace container {

        /** Namespace v1. */
        namespace v1 {

            /** Represents a ClusterManager */
            class ClusterManager extends $protobuf.rpc.Service {

                /**
                 * Constructs a new ClusterManager service.
                 * @param rpcImpl RPC implementation
                 * @param [requestDelimited=false] Whether requests are length-delimited
                 * @param [responseDelimited=false] Whether responses are length-delimited
                 */
                constructor(rpcImpl: $protobuf.RPCImpl, requestDelimited?: boolean, responseDelimited?: boolean);

                /**
                 * Creates new ClusterManager service using the specified rpc implementation.
                 * @param rpcImpl RPC implementation
                 * @param [requestDelimited=false] Whether requests are length-delimited
                 * @param [responseDelimited=false] Whether responses are length-delimited
                 * @returns RPC service. Useful where requests and/or responses are streamed.
                 */
                public static create(rpcImpl: $protobuf.RPCImpl, requestDelimited?: boolean, responseDelimited?: boolean): ClusterManager;

                /**
                 * Calls ListClusters.
                 * @param request ListClustersRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and ListClustersResponse
                 */
                public listClusters(request: google.container.v1.IListClustersRequest, callback: google.container.v1.ClusterManager.ListClustersCallback): void;

                /**
                 * Calls ListClusters.
                 * @param request ListClustersRequest message or plain object
                 * @returns Promise
                 */
                public listClusters(request: google.container.v1.IListClustersRequest): Promise<google.container.v1.ListClustersResponse>;

                /**
                 * Calls GetCluster.
                 * @param request GetClusterRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and Cluster
                 */
                public getCluster(request: google.container.v1.IGetClusterRequest, callback: google.container.v1.ClusterManager.GetClusterCallback): void;

                /**
                 * Calls GetCluster.
                 * @param request GetClusterRequest message or plain object
                 * @returns Promise
                 */
                public getCluster(request: google.container.v1.IGetClusterRequest): Promise<google.container.v1.Cluster>;

                /**
                 * Calls CreateCluster.
                 * @param request CreateClusterRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and Operation
                 */
                public createCluster(request: google.container.v1.ICreateClusterRequest, callback: google.container.v1.ClusterManager.CreateClusterCallback): void;

                /**
                 * Calls CreateCluster.
                 * @param request CreateClusterRequest message or plain object
                 * @returns Promise
                 */
                public createCluster(request: google.container.v1.ICreateClusterRequest): Promise<google.container.v1.Operation>;

                /**
                 * Calls UpdateCluster.
                 * @param request UpdateClusterRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and Operation
                 */
                public updateCluster(request: google.container.v1.IUpdateClusterRequest, callback: google.container.v1.ClusterManager.UpdateClusterCallback): void;

                /**
                 * Calls UpdateCluster.
                 * @param request UpdateClusterRequest message or plain object
                 * @returns Promise
                 */
                public updateCluster(request: google.container.v1.IUpdateClusterRequest): Promise<google.container.v1.Operation>;

                /**
                 * Calls UpdateNodePool.
                 * @param request UpdateNodePoolRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and Operation
                 */
                public updateNodePool(request: google.container.v1.IUpdateNodePoolRequest, callback: google.container.v1.ClusterManager.UpdateNodePoolCallback): void;

                /**
                 * Calls UpdateNodePool.
                 * @param request UpdateNodePoolRequest message or plain object
                 * @returns Promise
                 */
                public updateNodePool(request: google.container.v1.IUpdateNodePoolRequest): Promise<google.container.v1.Operation>;

                /**
                 * Calls SetNodePoolAutoscaling.
                 * @param request SetNodePoolAutoscalingRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and Operation
                 */
                public setNodePoolAutoscaling(request: google.container.v1.ISetNodePoolAutoscalingRequest, callback: google.container.v1.ClusterManager.SetNodePoolAutoscalingCallback): void;

                /**
                 * Calls SetNodePoolAutoscaling.
                 * @param request SetNodePoolAutoscalingRequest message or plain object
                 * @returns Promise
                 */
                public setNodePoolAutoscaling(request: google.container.v1.ISetNodePoolAutoscalingRequest): Promise<google.container.v1.Operation>;

                /**
                 * Calls SetLoggingService.
                 * @param request SetLoggingServiceRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and Operation
                 */
                public setLoggingService(request: google.container.v1.ISetLoggingServiceRequest, callback: google.container.v1.ClusterManager.SetLoggingServiceCallback): void;

                /**
                 * Calls SetLoggingService.
                 * @param request SetLoggingServiceRequest message or plain object
                 * @returns Promise
                 */
                public setLoggingService(request: google.container.v1.ISetLoggingServiceRequest): Promise<google.container.v1.Operation>;

                /**
                 * Calls SetMonitoringService.
                 * @param request SetMonitoringServiceRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and Operation
                 */
                public setMonitoringService(request: google.container.v1.ISetMonitoringServiceRequest, callback: google.container.v1.ClusterManager.SetMonitoringServiceCallback): void;

                /**
                 * Calls SetMonitoringService.
                 * @param request SetMonitoringServiceRequest message or plain object
                 * @returns Promise
                 */
                public setMonitoringService(request: google.container.v1.ISetMonitoringServiceRequest): Promise<google.container.v1.Operation>;

                /**
                 * Calls SetAddonsConfig.
                 * @param request SetAddonsConfigRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and Operation
                 */
                public setAddonsConfig(request: google.container.v1.ISetAddonsConfigRequest, callback: google.container.v1.ClusterManager.SetAddonsConfigCallback): void;

                /**
                 * Calls SetAddonsConfig.
                 * @param request SetAddonsConfigRequest message or plain object
                 * @returns Promise
                 */
                public setAddonsConfig(request: google.container.v1.ISetAddonsConfigRequest): Promise<google.container.v1.Operation>;

                /**
                 * Calls SetLocations.
                 * @param request SetLocationsRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and Operation
                 */
                public setLocations(request: google.container.v1.ISetLocationsRequest, callback: google.container.v1.ClusterManager.SetLocationsCallback): void;

                /**
                 * Calls SetLocations.
                 * @param request SetLocationsRequest message or plain object
                 * @returns Promise
                 */
                public setLocations(request: google.container.v1.ISetLocationsRequest): Promise<google.container.v1.Operation>;

                /**
                 * Calls UpdateMaster.
                 * @param request UpdateMasterRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and Operation
                 */
                public updateMaster(request: google.container.v1.IUpdateMasterRequest, callback: google.container.v1.ClusterManager.UpdateMasterCallback): void;

                /**
                 * Calls UpdateMaster.
                 * @param request UpdateMasterRequest message or plain object
                 * @returns Promise
                 */
                public updateMaster(request: google.container.v1.IUpdateMasterRequest): Promise<google.container.v1.Operation>;

                /**
                 * Calls SetMasterAuth.
                 * @param request SetMasterAuthRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and Operation
                 */
                public setMasterAuth(request: google.container.v1.ISetMasterAuthRequest, callback: google.container.v1.ClusterManager.SetMasterAuthCallback): void;

                /**
                 * Calls SetMasterAuth.
                 * @param request SetMasterAuthRequest message or plain object
                 * @returns Promise
                 */
                public setMasterAuth(request: google.container.v1.ISetMasterAuthRequest): Promise<google.container.v1.Operation>;

                /**
                 * Calls DeleteCluster.
                 * @param request DeleteClusterRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and Operation
                 */
                public deleteCluster(request: google.container.v1.IDeleteClusterRequest, callback: google.container.v1.ClusterManager.DeleteClusterCallback): void;

                /**
                 * Calls DeleteCluster.
                 * @param request DeleteClusterRequest message or plain object
                 * @returns Promise
                 */
                public deleteCluster(request: google.container.v1.IDeleteClusterRequest): Promise<google.container.v1.Operation>;

                /**
                 * Calls ListOperations.
                 * @param request ListOperationsRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and ListOperationsResponse
                 */
                public listOperations(request: google.container.v1.IListOperationsRequest, callback: google.container.v1.ClusterManager.ListOperationsCallback): void;

                /**
                 * Calls ListOperations.
                 * @param request ListOperationsRequest message or plain object
                 * @returns Promise
                 */
                public listOperations(request: google.container.v1.IListOperationsRequest): Promise<google.container.v1.ListOperationsResponse>;

                /**
                 * Calls GetOperation.
                 * @param request GetOperationRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and Operation
                 */
                public getOperation(request: google.container.v1.IGetOperationRequest, callback: google.container.v1.ClusterManager.GetOperationCallback): void;

                /**
                 * Calls GetOperation.
                 * @param request GetOperationRequest message or plain object
                 * @returns Promise
                 */
                public getOperation(request: google.container.v1.IGetOperationRequest): Promise<google.container.v1.Operation>;

                /**
                 * Calls CancelOperation.
                 * @param request CancelOperationRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and Empty
                 */
                public cancelOperation(request: google.container.v1.ICancelOperationRequest, callback: google.container.v1.ClusterManager.CancelOperationCallback): void;

                /**
                 * Calls CancelOperation.
                 * @param request CancelOperationRequest message or plain object
                 * @returns Promise
                 */
                public cancelOperation(request: google.container.v1.ICancelOperationRequest): Promise<google.protobuf.Empty>;

                /**
                 * Calls GetServerConfig.
                 * @param request GetServerConfigRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and ServerConfig
                 */
                public getServerConfig(request: google.container.v1.IGetServerConfigRequest, callback: google.container.v1.ClusterManager.GetServerConfigCallback): void;

                /**
                 * Calls GetServerConfig.
                 * @param request GetServerConfigRequest message or plain object
                 * @returns Promise
                 */
                public getServerConfig(request: google.container.v1.IGetServerConfigRequest): Promise<google.container.v1.ServerConfig>;

                /**
                 * Calls GetJSONWebKeys.
                 * @param request GetJSONWebKeysRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and GetJSONWebKeysResponse
                 */
                public getJSONWebKeys(request: google.container.v1.IGetJSONWebKeysRequest, callback: google.container.v1.ClusterManager.GetJSONWebKeysCallback): void;

                /**
                 * Calls GetJSONWebKeys.
                 * @param request GetJSONWebKeysRequest message or plain object
                 * @returns Promise
                 */
                public getJSONWebKeys(request: google.container.v1.IGetJSONWebKeysRequest): Promise<google.container.v1.GetJSONWebKeysResponse>;

                /**
                 * Calls ListNodePools.
                 * @param request ListNodePoolsRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and ListNodePoolsResponse
                 */
                public listNodePools(request: google.container.v1.IListNodePoolsRequest, callback: google.container.v1.ClusterManager.ListNodePoolsCallback): void;

                /**
                 * Calls ListNodePools.
                 * @param request ListNodePoolsRequest message or plain object
                 * @returns Promise
                 */
                public listNodePools(request: google.container.v1.IListNodePoolsRequest): Promise<google.container.v1.ListNodePoolsResponse>;

                /**
                 * Calls GetNodePool.
                 * @param request GetNodePoolRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and NodePool
                 */
                public getNodePool(request: google.container.v1.IGetNodePoolRequest, callback: google.container.v1.ClusterManager.GetNodePoolCallback): void;

                /**
                 * Calls GetNodePool.
                 * @param request GetNodePoolRequest message or plain object
                 * @returns Promise
                 */
                public getNodePool(request: google.container.v1.IGetNodePoolRequest): Promise<google.container.v1.NodePool>;

                /**
                 * Calls CreateNodePool.
                 * @param request CreateNodePoolRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and Operation
                 */
                public createNodePool(request: google.container.v1.ICreateNodePoolRequest, callback: google.container.v1.ClusterManager.CreateNodePoolCallback): void;

                /**
                 * Calls CreateNodePool.
                 * @param request CreateNodePoolRequest message or plain object
                 * @returns Promise
                 */
                public createNodePool(request: google.container.v1.ICreateNodePoolRequest): Promise<google.container.v1.Operation>;

                /**
                 * Calls DeleteNodePool.
                 * @param request DeleteNodePoolRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and Operation
                 */
                public deleteNodePool(request: google.container.v1.IDeleteNodePoolRequest, callback: google.container.v1.ClusterManager.DeleteNodePoolCallback): void;

                /**
                 * Calls DeleteNodePool.
                 * @param request DeleteNodePoolRequest message or plain object
                 * @returns Promise
                 */
                public deleteNodePool(request: google.container.v1.IDeleteNodePoolRequest): Promise<google.container.v1.Operation>;

                /**
                 * Calls CompleteNodePoolUpgrade.
                 * @param request CompleteNodePoolUpgradeRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and Empty
                 */
                public completeNodePoolUpgrade(request: google.container.v1.ICompleteNodePoolUpgradeRequest, callback: google.container.v1.ClusterManager.CompleteNodePoolUpgradeCallback): void;

                /**
                 * Calls CompleteNodePoolUpgrade.
                 * @param request CompleteNodePoolUpgradeRequest message or plain object
                 * @returns Promise
                 */
                public completeNodePoolUpgrade(request: google.container.v1.ICompleteNodePoolUpgradeRequest): Promise<google.protobuf.Empty>;

                /**
                 * Calls RollbackNodePoolUpgrade.
                 * @param request RollbackNodePoolUpgradeRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and Operation
                 */
                public rollbackNodePoolUpgrade(request: google.container.v1.IRollbackNodePoolUpgradeRequest, callback: google.container.v1.ClusterManager.RollbackNodePoolUpgradeCallback): void;

                /**
                 * Calls RollbackNodePoolUpgrade.
                 * @param request RollbackNodePoolUpgradeRequest message or plain object
                 * @returns Promise
                 */
                public rollbackNodePoolUpgrade(request: google.container.v1.IRollbackNodePoolUpgradeRequest): Promise<google.container.v1.Operation>;

                /**
                 * Calls SetNodePoolManagement.
                 * @param request SetNodePoolManagementRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and Operation
                 */
                public setNodePoolManagement(request: google.container.v1.ISetNodePoolManagementRequest, callback: google.container.v1.ClusterManager.SetNodePoolManagementCallback): void;

                /**
                 * Calls SetNodePoolManagement.
                 * @param request SetNodePoolManagementRequest message or plain object
                 * @returns Promise
                 */
                public setNodePoolManagement(request: google.container.v1.ISetNodePoolManagementRequest): Promise<google.container.v1.Operation>;

                /**
                 * Calls SetLabels.
                 * @param request SetLabelsRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and Operation
                 */
                public setLabels(request: google.container.v1.ISetLabelsRequest, callback: google.container.v1.ClusterManager.SetLabelsCallback): void;

                /**
                 * Calls SetLabels.
                 * @param request SetLabelsRequest message or plain object
                 * @returns Promise
                 */
                public setLabels(request: google.container.v1.ISetLabelsRequest): Promise<google.container.v1.Operation>;

                /**
                 * Calls SetLegacyAbac.
                 * @param request SetLegacyAbacRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and Operation
                 */
                public setLegacyAbac(request: google.container.v1.ISetLegacyAbacRequest, callback: google.container.v1.ClusterManager.SetLegacyAbacCallback): void;

                /**
                 * Calls SetLegacyAbac.
                 * @param request SetLegacyAbacRequest message or plain object
                 * @returns Promise
                 */
                public setLegacyAbac(request: google.container.v1.ISetLegacyAbacRequest): Promise<google.container.v1.Operation>;

                /**
                 * Calls StartIPRotation.
                 * @param request StartIPRotationRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and Operation
                 */
                public startIPRotation(request: google.container.v1.IStartIPRotationRequest, callback: google.container.v1.ClusterManager.StartIPRotationCallback): void;

                /**
                 * Calls StartIPRotation.
                 * @param request StartIPRotationRequest message or plain object
                 * @returns Promise
                 */
                public startIPRotation(request: google.container.v1.IStartIPRotationRequest): Promise<google.container.v1.Operation>;

                /**
                 * Calls CompleteIPRotation.
                 * @param request CompleteIPRotationRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and Operation
                 */
                public completeIPRotation(request: google.container.v1.ICompleteIPRotationRequest, callback: google.container.v1.ClusterManager.CompleteIPRotationCallback): void;

                /**
                 * Calls CompleteIPRotation.
                 * @param request CompleteIPRotationRequest message or plain object
                 * @returns Promise
                 */
                public completeIPRotation(request: google.container.v1.ICompleteIPRotationRequest): Promise<google.container.v1.Operation>;

                /**
                 * Calls SetNodePoolSize.
                 * @param request SetNodePoolSizeRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and Operation
                 */
                public setNodePoolSize(request: google.container.v1.ISetNodePoolSizeRequest, callback: google.container.v1.ClusterManager.SetNodePoolSizeCallback): void;

                /**
                 * Calls SetNodePoolSize.
                 * @param request SetNodePoolSizeRequest message or plain object
                 * @returns Promise
                 */
                public setNodePoolSize(request: google.container.v1.ISetNodePoolSizeRequest): Promise<google.container.v1.Operation>;

                /**
                 * Calls SetNetworkPolicy.
                 * @param request SetNetworkPolicyRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and Operation
                 */
                public setNetworkPolicy(request: google.container.v1.ISetNetworkPolicyRequest, callback: google.container.v1.ClusterManager.SetNetworkPolicyCallback): void;

                /**
                 * Calls SetNetworkPolicy.
                 * @param request SetNetworkPolicyRequest message or plain object
                 * @returns Promise
                 */
                public setNetworkPolicy(request: google.container.v1.ISetNetworkPolicyRequest): Promise<google.container.v1.Operation>;

                /**
                 * Calls SetMaintenancePolicy.
                 * @param request SetMaintenancePolicyRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and Operation
                 */
                public setMaintenancePolicy(request: google.container.v1.ISetMaintenancePolicyRequest, callback: google.container.v1.ClusterManager.SetMaintenancePolicyCallback): void;

                /**
                 * Calls SetMaintenancePolicy.
                 * @param request SetMaintenancePolicyRequest message or plain object
                 * @returns Promise
                 */
                public setMaintenancePolicy(request: google.container.v1.ISetMaintenancePolicyRequest): Promise<google.container.v1.Operation>;

                /**
                 * Calls ListUsableSubnetworks.
                 * @param request ListUsableSubnetworksRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and ListUsableSubnetworksResponse
                 */
                public listUsableSubnetworks(request: google.container.v1.IListUsableSubnetworksRequest, callback: google.container.v1.ClusterManager.ListUsableSubnetworksCallback): void;

                /**
                 * Calls ListUsableSubnetworks.
                 * @param request ListUsableSubnetworksRequest message or plain object
                 * @returns Promise
                 */
                public listUsableSubnetworks(request: google.container.v1.IListUsableSubnetworksRequest): Promise<google.container.v1.ListUsableSubnetworksResponse>;

                /**
                 * Calls CheckAutopilotCompatibility.
                 * @param request CheckAutopilotCompatibilityRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and CheckAutopilotCompatibilityResponse
                 */
                public checkAutopilotCompatibility(request: google.container.v1.ICheckAutopilotCompatibilityRequest, callback: google.container.v1.ClusterManager.CheckAutopilotCompatibilityCallback): void;

                /**
                 * Calls CheckAutopilotCompatibility.
                 * @param request CheckAutopilotCompatibilityRequest message or plain object
                 * @returns Promise
                 */
                public checkAutopilotCompatibility(request: google.container.v1.ICheckAutopilotCompatibilityRequest): Promise<google.container.v1.CheckAutopilotCompatibilityResponse>;

                /**
                 * Calls FetchClusterUpgradeInfo.
                 * @param request FetchClusterUpgradeInfoRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and ClusterUpgradeInfo
                 */
                public fetchClusterUpgradeInfo(request: google.container.v1.IFetchClusterUpgradeInfoRequest, callback: google.container.v1.ClusterManager.FetchClusterUpgradeInfoCallback): void;

                /**
                 * Calls FetchClusterUpgradeInfo.
                 * @param request FetchClusterUpgradeInfoRequest message or plain object
                 * @returns Promise
                 */
                public fetchClusterUpgradeInfo(request: google.container.v1.IFetchClusterUpgradeInfoRequest): Promise<google.container.v1.ClusterUpgradeInfo>;

                /**
                 * Calls FetchNodePoolUpgradeInfo.
                 * @param request FetchNodePoolUpgradeInfoRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and NodePoolUpgradeInfo
                 */
                public fetchNodePoolUpgradeInfo(request: google.container.v1.IFetchNodePoolUpgradeInfoRequest, callback: google.container.v1.ClusterManager.FetchNodePoolUpgradeInfoCallback): void;

                /**
                 * Calls FetchNodePoolUpgradeInfo.
                 * @param request FetchNodePoolUpgradeInfoRequest message or plain object
                 * @returns Promise
                 */
                public fetchNodePoolUpgradeInfo(request: google.container.v1.IFetchNodePoolUpgradeInfoRequest): Promise<google.container.v1.NodePoolUpgradeInfo>;
            }

            namespace ClusterManager {

                /**
                 * Callback as used by {@link google.container.v1.ClusterManager|listClusters}.
                 * @param error Error, if any
                 * @param [response] ListClustersResponse
                 */
                type ListClustersCallback = (error: (Error|null), response?: google.container.v1.ListClustersResponse) => void;

                /**
                 * Callback as used by {@link google.container.v1.ClusterManager|getCluster}.
                 * @param error Error, if any
                 * @param [response] Cluster
                 */
                type GetClusterCallback = (error: (Error|null), response?: google.container.v1.Cluster) => void;

                /**
                 * Callback as used by {@link google.container.v1.ClusterManager|createCluster}.
                 * @param error Error, if any
                 * @param [response] Operation
                 */
                type CreateClusterCallback = (error: (Error|null), response?: google.container.v1.Operation) => void;

                /**
                 * Callback as used by {@link google.container.v1.ClusterManager|updateCluster}.
                 * @param error Error, if any
                 * @param [response] Operation
                 */
                type UpdateClusterCallback = (error: (Error|null), response?: google.container.v1.Operation) => void;

                /**
                 * Callback as used by {@link google.container.v1.ClusterManager|updateNodePool}.
                 * @param error Error, if any
                 * @param [response] Operation
                 */
                type UpdateNodePoolCallback = (error: (Error|null), response?: google.container.v1.Operation) => void;

                /**
                 * Callback as used by {@link google.container.v1.ClusterManager|setNodePoolAutoscaling}.
                 * @param error Error, if any
                 * @param [response] Operation
                 */
                type SetNodePoolAutoscalingCallback = (error: (Error|null), response?: google.container.v1.Operation) => void;

                /**
                 * Callback as used by {@link google.container.v1.ClusterManager|setLoggingService}.
                 * @param error Error, if any
                 * @param [response] Operation
                 */
                type SetLoggingServiceCallback = (error: (Error|null), response?: google.container.v1.Operation) => void;

                /**
                 * Callback as used by {@link google.container.v1.ClusterManager|setMonitoringService}.
                 * @param error Error, if any
                 * @param [response] Operation
                 */
                type SetMonitoringServiceCallback = (error: (Error|null), response?: google.container.v1.Operation) => void;

                /**
                 * Callback as used by {@link google.container.v1.ClusterManager|setAddonsConfig}.
                 * @param error Error, if any
                 * @param [response] Operation
                 */
                type SetAddonsConfigCallback = (error: (Error|null), response?: google.container.v1.Operation) => void;

                /**
                 * Callback as used by {@link google.container.v1.ClusterManager|setLocations}.
                 * @param error Error, if any
                 * @param [response] Operation
                 */
                type SetLocationsCallback = (error: (Error|null), response?: google.container.v1.Operation) => void;

                /**
                 * Callback as used by {@link google.container.v1.ClusterManager|updateMaster}.
                 * @param error Error, if any
                 * @param [response] Operation
                 */
                type UpdateMasterCallback = (error: (Error|null), response?: google.container.v1.Operation) => void;

                /**
                 * Callback as used by {@link google.container.v1.ClusterManager|setMasterAuth}.
                 * @param error Error, if any
                 * @param [response] Operation
                 */
                type SetMasterAuthCallback = (error: (Error|null), response?: google.container.v1.Operation) => void;

                /**
                 * Callback as used by {@link google.container.v1.ClusterManager|deleteCluster}.
                 * @param error Error, if any
                 * @param [response] Operation
                 */
                type DeleteClusterCallback = (error: (Error|null), response?: google.container.v1.Operation) => void;

                /**
                 * Callback as used by {@link google.container.v1.ClusterManager|listOperations}.
                 * @param error Error, if any
                 * @param [response] ListOperationsResponse
                 */
                type ListOperationsCallback = (error: (Error|null), response?: google.container.v1.ListOperationsResponse) => void;

                /**
                 * Callback as used by {@link google.container.v1.ClusterManager|getOperation}.
                 * @param error Error, if any
                 * @param [response] Operation
                 */
                type GetOperationCallback = (error: (Error|null), response?: google.container.v1.Operation) => void;

                /**
                 * Callback as used by {@link google.container.v1.ClusterManager|cancelOperation}.
                 * @param error Error, if any
                 * @param [response] Empty
                 */
                type CancelOperationCallback = (error: (Error|null), response?: google.protobuf.Empty) => void;

                /**
                 * Callback as used by {@link google.container.v1.ClusterManager|getServerConfig}.
                 * @param error Error, if any
                 * @param [response] ServerConfig
                 */
                type GetServerConfigCallback = (error: (Error|null), response?: google.container.v1.ServerConfig) => void;

                /**
                 * Callback as used by {@link google.container.v1.ClusterManager|getJSONWebKeys}.
                 * @param error Error, if any
                 * @param [response] GetJSONWebKeysResponse
                 */
                type GetJSONWebKeysCallback = (error: (Error|null), response?: google.container.v1.GetJSONWebKeysResponse) => void;

                /**
                 * Callback as used by {@link google.container.v1.ClusterManager|listNodePools}.
                 * @param error Error, if any
                 * @param [response] ListNodePoolsResponse
                 */
                type ListNodePoolsCallback = (error: (Error|null), response?: google.container.v1.ListNodePoolsResponse) => void;

                /**
                 * Callback as used by {@link google.container.v1.ClusterManager|getNodePool}.
                 * @param error Error, if any
                 * @param [response] NodePool
                 */
                type GetNodePoolCallback = (error: (Error|null), response?: google.container.v1.NodePool) => void;

                /**
                 * Callback as used by {@link google.container.v1.ClusterManager|createNodePool}.
                 * @param error Error, if any
                 * @param [response] Operation
                 */
                type CreateNodePoolCallback = (error: (Error|null), response?: google.container.v1.Operation) => void;

                /**
                 * Callback as used by {@link google.container.v1.ClusterManager|deleteNodePool}.
                 * @param error Error, if any
                 * @param [response] Operation
                 */
                type DeleteNodePoolCallback = (error: (Error|null), response?: google.container.v1.Operation) => void;

                /**
                 * Callback as used by {@link google.container.v1.ClusterManager|completeNodePoolUpgrade}.
                 * @param error Error, if any
                 * @param [response] Empty
                 */
                type CompleteNodePoolUpgradeCallback = (error: (Error|null), response?: google.protobuf.Empty) => void;

                /**
                 * Callback as used by {@link google.container.v1.ClusterManager|rollbackNodePoolUpgrade}.
                 * @param error Error, if any
                 * @param [response] Operation
                 */
                type RollbackNodePoolUpgradeCallback = (error: (Error|null), response?: google.container.v1.Operation) => void;

                /**
                 * Callback as used by {@link google.container.v1.ClusterManager|setNodePoolManagement}.
                 * @param error Error, if any
                 * @param [response] Operation
                 */
                type SetNodePoolManagementCallback = (error: (Error|null), response?: google.container.v1.Operation) => void;

                /**
                 * Callback as used by {@link google.container.v1.ClusterManager|setLabels}.
                 * @param error Error, if any
                 * @param [response] Operation
                 */
                type SetLabelsCallback = (error: (Error|null), response?: google.container.v1.Operation) => void;

                /**
                 * Callback as used by {@link google.container.v1.ClusterManager|setLegacyAbac}.
                 * @param error Error, if any
                 * @param [response] Operation
                 */
                type SetLegacyAbacCallback = (error: (Error|null), response?: google.container.v1.Operation) => void;

                /**
                 * Callback as used by {@link google.container.v1.ClusterManager|startIPRotation}.
                 * @param error Error, if any
                 * @param [response] Operation
                 */
                type StartIPRotationCallback = (error: (Error|null), response?: google.container.v1.Operation) => void;

                /**
                 * Callback as used by {@link google.container.v1.ClusterManager|completeIPRotation}.
                 * @param error Error, if any
                 * @param [response] Operation
                 */
                type CompleteIPRotationCallback = (error: (Error|null), response?: google.container.v1.Operation) => void;

                /**
                 * Callback as used by {@link google.container.v1.ClusterManager|setNodePoolSize}.
                 * @param error Error, if any
                 * @param [response] Operation
                 */
                type SetNodePoolSizeCallback = (error: (Error|null), response?: google.container.v1.Operation) => void;

                /**
                 * Callback as used by {@link google.container.v1.ClusterManager|setNetworkPolicy}.
                 * @param error Error, if any
                 * @param [response] Operation
                 */
                type SetNetworkPolicyCallback = (error: (Error|null), response?: google.container.v1.Operation) => void;

                /**
                 * Callback as used by {@link google.container.v1.ClusterManager|setMaintenancePolicy}.
                 * @param error Error, if any
                 * @param [response] Operation
                 */
                type SetMaintenancePolicyCallback = (error: (Error|null), response?: google.container.v1.Operation) => void;

                /**
                 * Callback as used by {@link google.container.v1.ClusterManager|listUsableSubnetworks}.
                 * @param error Error, if any
                 * @param [response] ListUsableSubnetworksResponse
                 */
                type ListUsableSubnetworksCallback = (error: (Error|null), response?: google.container.v1.ListUsableSubnetworksResponse) => void;

                /**
                 * Callback as used by {@link google.container.v1.ClusterManager|checkAutopilotCompatibility}.
                 * @param error Error, if any
                 * @param [response] CheckAutopilotCompatibilityResponse
                 */
                type CheckAutopilotCompatibilityCallback = (error: (Error|null), response?: google.container.v1.CheckAutopilotCompatibilityResponse) => void;

                /**
                 * Callback as used by {@link google.container.v1.ClusterManager|fetchClusterUpgradeInfo}.
                 * @param error Error, if any
                 * @param [response] ClusterUpgradeInfo
                 */
                type FetchClusterUpgradeInfoCallback = (error: (Error|null), response?: google.container.v1.ClusterUpgradeInfo) => void;

                /**
                 * Callback as used by {@link google.container.v1.ClusterManager|fetchNodePoolUpgradeInfo}.
                 * @param error Error, if any
                 * @param [response] NodePoolUpgradeInfo
                 */
                type FetchNodePoolUpgradeInfoCallback = (error: (Error|null), response?: google.container.v1.NodePoolUpgradeInfo) => void;
            }

            /** Properties of a LinuxNodeConfig. */
            interface ILinuxNodeConfig {

                /** LinuxNodeConfig sysctls */
                sysctls?: ({ [k: string]: string }|null);

                /** LinuxNodeConfig cgroupMode */
                cgroupMode?: (google.container.v1.LinuxNodeConfig.CgroupMode|keyof typeof google.container.v1.LinuxNodeConfig.CgroupMode|null);

                /** LinuxNodeConfig hugepages */
                hugepages?: (google.container.v1.LinuxNodeConfig.IHugepagesConfig|null);

                /** LinuxNodeConfig transparentHugepageEnabled */
                transparentHugepageEnabled?: (google.container.v1.LinuxNodeConfig.TransparentHugepageEnabled|keyof typeof google.container.v1.LinuxNodeConfig.TransparentHugepageEnabled|null);

                /** LinuxNodeConfig transparentHugepageDefrag */
                transparentHugepageDefrag?: (google.container.v1.LinuxNodeConfig.TransparentHugepageDefrag|keyof typeof google.container.v1.LinuxNodeConfig.TransparentHugepageDefrag|null);

                /** LinuxNodeConfig customNodeInit */
                customNodeInit?: (google.container.v1.LinuxNodeConfig.ICustomNodeInit|null);

                /** LinuxNodeConfig swapConfig */
                swapConfig?: (google.container.v1.LinuxNodeConfig.ISwapConfig|null);

                /** LinuxNodeConfig nodeKernelModuleLoading */
                nodeKernelModuleLoading?: (google.container.v1.LinuxNodeConfig.INodeKernelModuleLoading|null);

                /** LinuxNodeConfig accurateTimeConfig */
                accurateTimeConfig?: (google.container.v1.LinuxNodeConfig.IAccurateTimeConfig|null);
            }

            /** Represents a LinuxNodeConfig. */
            class LinuxNodeConfig implements ILinuxNodeConfig {

                /**
                 * Constructs a new LinuxNodeConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.ILinuxNodeConfig);

                /** LinuxNodeConfig sysctls. */
                public sysctls: { [k: string]: string };

                /** LinuxNodeConfig cgroupMode. */
                public cgroupMode: (google.container.v1.LinuxNodeConfig.CgroupMode|keyof typeof google.container.v1.LinuxNodeConfig.CgroupMode);

                /** LinuxNodeConfig hugepages. */
                public hugepages?: (google.container.v1.LinuxNodeConfig.IHugepagesConfig|null);

                /** LinuxNodeConfig transparentHugepageEnabled. */
                public transparentHugepageEnabled: (google.container.v1.LinuxNodeConfig.TransparentHugepageEnabled|keyof typeof google.container.v1.LinuxNodeConfig.TransparentHugepageEnabled);

                /** LinuxNodeConfig transparentHugepageDefrag. */
                public transparentHugepageDefrag: (google.container.v1.LinuxNodeConfig.TransparentHugepageDefrag|keyof typeof google.container.v1.LinuxNodeConfig.TransparentHugepageDefrag);

                /** LinuxNodeConfig customNodeInit. */
                public customNodeInit?: (google.container.v1.LinuxNodeConfig.ICustomNodeInit|null);

                /** LinuxNodeConfig swapConfig. */
                public swapConfig?: (google.container.v1.LinuxNodeConfig.ISwapConfig|null);

                /** LinuxNodeConfig nodeKernelModuleLoading. */
                public nodeKernelModuleLoading?: (google.container.v1.LinuxNodeConfig.INodeKernelModuleLoading|null);

                /** LinuxNodeConfig accurateTimeConfig. */
                public accurateTimeConfig?: (google.container.v1.LinuxNodeConfig.IAccurateTimeConfig|null);

                /**
                 * Creates a new LinuxNodeConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns LinuxNodeConfig instance
                 */
                public static create(properties?: google.container.v1.ILinuxNodeConfig): google.container.v1.LinuxNodeConfig;

                /**
                 * Encodes the specified LinuxNodeConfig message. Does not implicitly {@link google.container.v1.LinuxNodeConfig.verify|verify} messages.
                 * @param message LinuxNodeConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.ILinuxNodeConfig, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a LinuxNodeConfig message.
                 * @param message Plain 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 LinuxNodeConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns LinuxNodeConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.LinuxNodeConfig;

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

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

                /**
                 * Gets the default type url for LinuxNodeConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace LinuxNodeConfig {

                /** CgroupMode enum. */
                enum CgroupMode {
                    CGROUP_MODE_UNSPECIFIED = 0,
                    CGROUP_MODE_V1 = 1,
                    CGROUP_MODE_V2 = 2
                }

                /** Properties of a HugepagesConfig. */
                interface IHugepagesConfig {

                    /** HugepagesConfig hugepageSize2m */
                    hugepageSize2m?: (number|null);

                    /** HugepagesConfig hugepageSize1g */
                    hugepageSize1g?: (number|null);
                }

                /** Represents a HugepagesConfig. */
                class HugepagesConfig implements IHugepagesConfig {

                    /**
                     * Constructs a new HugepagesConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.container.v1.LinuxNodeConfig.IHugepagesConfig);

                    /** HugepagesConfig hugepageSize2m. */
                    public hugepageSize2m?: (number|null);

                    /** HugepagesConfig hugepageSize1g. */
                    public hugepageSize1g?: (number|null);

                    /**
                     * Creates a new HugepagesConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HugepagesConfig instance
                     */
                    public static create(properties?: google.container.v1.LinuxNodeConfig.IHugepagesConfig): google.container.v1.LinuxNodeConfig.HugepagesConfig;

                    /**
                     * Encodes the specified HugepagesConfig message. Does not implicitly {@link google.container.v1.LinuxNodeConfig.HugepagesConfig.verify|verify} messages.
                     * @param message HugepagesConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.container.v1.LinuxNodeConfig.IHugepagesConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HugepagesConfig message, length delimited. Does not implicitly {@link google.container.v1.LinuxNodeConfig.HugepagesConfig.verify|verify} messages.
                     * @param message HugepagesConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.container.v1.LinuxNodeConfig.IHugepagesConfig, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

                    /**
                     * Verifies a HugepagesConfig message.
                     * @param message Plain 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 HugepagesConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HugepagesConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.container.v1.LinuxNodeConfig.HugepagesConfig;

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

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

                    /**
                     * Gets the default type url for HugepagesConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** TransparentHugepageEnabled enum. */
                enum TransparentHugepageEnabled {
                    TRANSPARENT_HUGEPAGE_ENABLED_UNSPECIFIED = 0,
                    TRANSPARENT_HUGEPAGE_ENABLED_ALWAYS = 1,
                    TRANSPARENT_HUGEPAGE_ENABLED_MADVISE = 2,
                    TRANSPARENT_HUGEPAGE_ENABLED_NEVER = 3
                }

                /** TransparentHugepageDefrag enum. */
                enum TransparentHugepageDefrag {
                    TRANSPARENT_HUGEPAGE_DEFRAG_UNSPECIFIED = 0,
                    TRANSPARENT_HUGEPAGE_DEFRAG_ALWAYS = 1,
                    TRANSPARENT_HUGEPAGE_DEFRAG_DEFER = 2,
                    TRANSPARENT_HUGEPAGE_DEFRAG_DEFER_WITH_MADVISE = 3,
                    TRANSPARENT_HUGEPAGE_DEFRAG_MADVISE = 4,
                    TRANSPARENT_HUGEPAGE_DEFRAG_NEVER = 5
                }

                /** Properties of a CustomNodeInit. */
                interface ICustomNodeInit {

                    /** CustomNodeInit initScript */
                    initScript?: (google.container.v1.LinuxNodeConfig.CustomNodeInit.IInitScript|null);
                }

                /** Represents a CustomNodeInit. */
                class CustomNodeInit implements ICustomNodeInit {

                    /**
                     * Constructs a new CustomNodeInit.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.container.v1.LinuxNodeConfig.ICustomNodeInit);

                    /** CustomNodeInit initScript. */
                    public initScript?: (google.container.v1.LinuxNodeConfig.CustomNodeInit.IInitScript|null);

                    /**
                     * Creates a new CustomNodeInit instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CustomNodeInit instance
                     */
                    public static create(properties?: google.container.v1.LinuxNodeConfig.ICustomNodeInit): google.container.v1.LinuxNodeConfig.CustomNodeInit;

                    /**
                     * Encodes the specified CustomNodeInit message. Does not implicitly {@link google.container.v1.LinuxNodeConfig.CustomNodeInit.verify|verify} messages.
                     * @param message CustomNodeInit message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.container.v1.LinuxNodeConfig.ICustomNodeInit, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CustomNodeInit message, length delimited. Does not implicitly {@link google.container.v1.LinuxNodeConfig.CustomNodeInit.verify|verify} messages.
                     * @param message CustomNodeInit message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.container.v1.LinuxNodeConfig.ICustomNodeInit, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

                    /**
                     * Verifies a CustomNodeInit message.
                     * @param message Plain 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 CustomNodeInit message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CustomNodeInit
                     */
                    public static fromObject(object: { [k: string]: any }): google.container.v1.LinuxNodeConfig.CustomNodeInit;

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

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

                    /**
                     * Gets the default type url for CustomNodeInit
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace CustomNodeInit {

                    /** Properties of an InitScript. */
                    interface IInitScript {

                        /** InitScript gcsUri */
                        gcsUri?: (string|null);

                        /** InitScript gcsGeneration */
                        gcsGeneration?: (number|Long|string|null);

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

                        /** InitScript gcpSecretManagerSecretUri */
                        gcpSecretManagerSecretUri?: (string|null);
                    }

                    /** Represents an InitScript. */
                    class InitScript implements IInitScript {

                        /**
                         * Constructs a new InitScript.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.container.v1.LinuxNodeConfig.CustomNodeInit.IInitScript);

                        /** InitScript gcsUri. */
                        public gcsUri: string;

                        /** InitScript gcsGeneration. */
                        public gcsGeneration: (number|Long|string);

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

                        /** InitScript gcpSecretManagerSecretUri. */
                        public gcpSecretManagerSecretUri: string;

                        /**
                         * Creates a new InitScript instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns InitScript instance
                         */
                        public static create(properties?: google.container.v1.LinuxNodeConfig.CustomNodeInit.IInitScript): google.container.v1.LinuxNodeConfig.CustomNodeInit.InitScript;

                        /**
                         * Encodes the specified InitScript message. Does not implicitly {@link google.container.v1.LinuxNodeConfig.CustomNodeInit.InitScript.verify|verify} messages.
                         * @param message InitScript message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.container.v1.LinuxNodeConfig.CustomNodeInit.IInitScript, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified InitScript message, length delimited. Does not implicitly {@link google.container.v1.LinuxNodeConfig.CustomNodeInit.InitScript.verify|verify} messages.
                         * @param message InitScript message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.container.v1.LinuxNodeConfig.CustomNodeInit.IInitScript, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

                        /**
                         * Verifies an InitScript message.
                         * @param message Plain 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 InitScript message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns InitScript
                         */
                        public static fromObject(object: { [k: string]: any }): google.container.v1.LinuxNodeConfig.CustomNodeInit.InitScript;

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

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

                        /**
                         * Gets the default type url for InitScript
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }
                }

                /** Properties of a SwapConfig. */
                interface ISwapConfig {

                    /** SwapConfig enabled */
                    enabled?: (boolean|null);

                    /** SwapConfig encryptionConfig */
                    encryptionConfig?: (google.container.v1.LinuxNodeConfig.SwapConfig.IEncryptionConfig|null);

                    /** SwapConfig bootDiskProfile */
                    bootDiskProfile?: (google.container.v1.LinuxNodeConfig.SwapConfig.IBootDiskProfile|null);

                    /** SwapConfig ephemeralLocalSsdProfile */
                    ephemeralLocalSsdProfile?: (google.container.v1.LinuxNodeConfig.SwapConfig.IEphemeralLocalSsdProfile|null);

                    /** SwapConfig dedicatedLocalSsdProfile */
                    dedicatedLocalSsdProfile?: (google.container.v1.LinuxNodeConfig.SwapConfig.IDedicatedLocalSsdProfile|null);
                }

                /** Represents a SwapConfig. */
                class SwapConfig implements ISwapConfig {

                    /**
                     * Constructs a new SwapConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.container.v1.LinuxNodeConfig.ISwapConfig);

                    /** SwapConfig enabled. */
                    public enabled?: (boolean|null);

                    /** SwapConfig encryptionConfig. */
                    public encryptionConfig?: (google.container.v1.LinuxNodeConfig.SwapConfig.IEncryptionConfig|null);

                    /** SwapConfig bootDiskProfile. */
                    public bootDiskProfile?: (google.container.v1.LinuxNodeConfig.SwapConfig.IBootDiskProfile|null);

                    /** SwapConfig ephemeralLocalSsdProfile. */
                    public ephemeralLocalSsdProfile?: (google.container.v1.LinuxNodeConfig.SwapConfig.IEphemeralLocalSsdProfile|null);

                    /** SwapConfig dedicatedLocalSsdProfile. */
                    public dedicatedLocalSsdProfile?: (google.container.v1.LinuxNodeConfig.SwapConfig.IDedicatedLocalSsdProfile|null);

                    /** SwapConfig performanceProfile. */
                    public performanceProfile?: ("bootDiskProfile"|"ephemeralLocalSsdProfile"|"dedicatedLocalSsdProfile");

                    /**
                     * Creates a new SwapConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SwapConfig instance
                     */
                    public static create(properties?: google.container.v1.LinuxNodeConfig.ISwapConfig): google.container.v1.LinuxNodeConfig.SwapConfig;

                    /**
                     * Encodes the specified SwapConfig message. Does not implicitly {@link google.container.v1.LinuxNodeConfig.SwapConfig.verify|verify} messages.
                     * @param message SwapConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.container.v1.LinuxNodeConfig.ISwapConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SwapConfig message, length delimited. Does not implicitly {@link google.container.v1.LinuxNodeConfig.SwapConfig.verify|verify} messages.
                     * @param message SwapConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.container.v1.LinuxNodeConfig.ISwapConfig, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

                    /**
                     * Verifies a SwapConfig message.
                     * @param message Plain 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 SwapConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SwapConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.container.v1.LinuxNodeConfig.SwapConfig;

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

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

                    /**
                     * Gets the default type url for SwapConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace SwapConfig {

                    /** Properties of an EncryptionConfig. */
                    interface IEncryptionConfig {

                        /** EncryptionConfig disabled */
                        disabled?: (boolean|null);
                    }

                    /** Represents an EncryptionConfig. */
                    class EncryptionConfig implements IEncryptionConfig {

                        /**
                         * Constructs a new EncryptionConfig.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.container.v1.LinuxNodeConfig.SwapConfig.IEncryptionConfig);

                        /** EncryptionConfig disabled. */
                        public disabled?: (boolean|null);

                        /**
                         * Creates a new EncryptionConfig instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns EncryptionConfig instance
                         */
                        public static create(properties?: google.container.v1.LinuxNodeConfig.SwapConfig.IEncryptionConfig): google.container.v1.LinuxNodeConfig.SwapConfig.EncryptionConfig;

                        /**
                         * Encodes the specified EncryptionConfig message. Does not implicitly {@link google.container.v1.LinuxNodeConfig.SwapConfig.EncryptionConfig.verify|verify} messages.
                         * @param message EncryptionConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.container.v1.LinuxNodeConfig.SwapConfig.IEncryptionConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified EncryptionConfig message, length delimited. Does not implicitly {@link google.container.v1.LinuxNodeConfig.SwapConfig.EncryptionConfig.verify|verify} messages.
                         * @param message EncryptionConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.container.v1.LinuxNodeConfig.SwapConfig.IEncryptionConfig, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

                        /**
                         * Verifies an EncryptionConfig message.
                         * @param message Plain 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 EncryptionConfig message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns EncryptionConfig
                         */
                        public static fromObject(object: { [k: string]: any }): google.container.v1.LinuxNodeConfig.SwapConfig.EncryptionConfig;

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

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

                        /**
                         * Gets the default type url for EncryptionConfig
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of a BootDiskProfile. */
                    interface IBootDiskProfile {

                        /** BootDiskProfile swapSizeGib */
                        swapSizeGib?: (number|Long|string|null);

                        /** BootDiskProfile swapSizePercent */
                        swapSizePercent?: (number|null);
                    }

                    /** Represents a BootDiskProfile. */
                    class BootDiskProfile implements IBootDiskProfile {

                        /**
                         * Constructs a new BootDiskProfile.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.container.v1.LinuxNodeConfig.SwapConfig.IBootDiskProfile);

                        /** BootDiskProfile swapSizeGib. */
                        public swapSizeGib?: (number|Long|string|null);

                        /** BootDiskProfile swapSizePercent. */
                        public swapSizePercent?: (number|null);

                        /** BootDiskProfile swapSize. */
                        public swapSize?: ("swapSizeGib"|"swapSizePercent");

                        /**
                         * Creates a new BootDiskProfile instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns BootDiskProfile instance
                         */
                        public static create(properties?: google.container.v1.LinuxNodeConfig.SwapConfig.IBootDiskProfile): google.container.v1.LinuxNodeConfig.SwapConfig.BootDiskProfile;

                        /**
                         * Encodes the specified BootDiskProfile message. Does not implicitly {@link google.container.v1.LinuxNodeConfig.SwapConfig.BootDiskProfile.verify|verify} messages.
                         * @param message BootDiskProfile message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.container.v1.LinuxNodeConfig.SwapConfig.IBootDiskProfile, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified BootDiskProfile message, length delimited. Does not implicitly {@link google.container.v1.LinuxNodeConfig.SwapConfig.BootDiskProfile.verify|verify} messages.
                         * @param message BootDiskProfile message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.container.v1.LinuxNodeConfig.SwapConfig.IBootDiskProfile, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

                        /**
                         * Verifies a BootDiskProfile message.
                         * @param message Plain 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 BootDiskProfile message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns BootDiskProfile
                         */
                        public static fromObject(object: { [k: string]: any }): google.container.v1.LinuxNodeConfig.SwapConfig.BootDiskProfile;

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

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

                        /**
                         * Gets the default type url for BootDiskProfile
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of an EphemeralLocalSsdProfile. */
                    interface IEphemeralLocalSsdProfile {

                        /** EphemeralLocalSsdProfile swapSizeGib */
                        swapSizeGib?: (number|Long|string|null);

                        /** EphemeralLocalSsdProfile swapSizePercent */
                        swapSizePercent?: (number|null);
                    }

                    /** Represents an EphemeralLocalSsdProfile. */
                    class EphemeralLocalSsdProfile implements IEphemeralLocalSsdProfile {

                        /**
                         * Constructs a new EphemeralLocalSsdProfile.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.container.v1.LinuxNodeConfig.SwapConfig.IEphemeralLocalSsdProfile);

                        /** EphemeralLocalSsdProfile swapSizeGib. */
                        public swapSizeGib?: (number|Long|string|null);

                        /** EphemeralLocalSsdProfile swapSizePercent. */
                        public swapSizePercent?: (number|null);

                        /** EphemeralLocalSsdProfile swapSize. */
                        public swapSize?: ("swapSizeGib"|"swapSizePercent");

                        /**
                         * Creates a new EphemeralLocalSsdProfile instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns EphemeralLocalSsdProfile instance
                         */
                        public static create(properties?: google.container.v1.LinuxNodeConfig.SwapConfig.IEphemeralLocalSsdProfile): google.container.v1.LinuxNodeConfig.SwapConfig.EphemeralLocalSsdProfile;

                        /**
                         * Encodes the specified EphemeralLocalSsdProfile message. Does not implicitly {@link google.container.v1.LinuxNodeConfig.SwapConfig.EphemeralLocalSsdProfile.verify|verify} messages.
                         * @param message EphemeralLocalSsdProfile message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.container.v1.LinuxNodeConfig.SwapConfig.IEphemeralLocalSsdProfile, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified EphemeralLocalSsdProfile message, length delimited. Does not implicitly {@link google.container.v1.LinuxNodeConfig.SwapConfig.EphemeralLocalSsdProfile.verify|verify} messages.
                         * @param message EphemeralLocalSsdProfile message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.container.v1.LinuxNodeConfig.SwapConfig.IEphemeralLocalSsdProfile, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

                        /**
                         * Verifies an EphemeralLocalSsdProfile message.
                         * @param message Plain 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 EphemeralLocalSsdProfile message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns EphemeralLocalSsdProfile
                         */
                        public static fromObject(object: { [k: string]: any }): google.container.v1.LinuxNodeConfig.SwapConfig.EphemeralLocalSsdProfile;

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

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

                        /**
                         * Gets the default type url for EphemeralLocalSsdProfile
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of a DedicatedLocalSsdProfile. */
                    interface IDedicatedLocalSsdProfile {

                        /** DedicatedLocalSsdProfile diskCount */
                        diskCount?: (number|Long|string|null);
                    }

                    /** Represents a DedicatedLocalSsdProfile. */
                    class DedicatedLocalSsdProfile implements IDedicatedLocalSsdProfile {

                        /**
                         * Constructs a new DedicatedLocalSsdProfile.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.container.v1.LinuxNodeConfig.SwapConfig.IDedicatedLocalSsdProfile);

                        /** DedicatedLocalSsdProfile diskCount. */
                        public diskCount: (number|Long|string);

                        /**
                         * Creates a new DedicatedLocalSsdProfile instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns DedicatedLocalSsdProfile instance
                         */
                        public static create(properties?: google.container.v1.LinuxNodeConfig.SwapConfig.IDedicatedLocalSsdProfile): google.container.v1.LinuxNodeConfig.SwapConfig.DedicatedLocalSsdProfile;

                        /**
                         * Encodes the specified DedicatedLocalSsdProfile message. Does not implicitly {@link google.container.v1.LinuxNodeConfig.SwapConfig.DedicatedLocalSsdProfile.verify|verify} messages.
                         * @param message DedicatedLocalSsdProfile message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.container.v1.LinuxNodeConfig.SwapConfig.IDedicatedLocalSsdProfile, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified DedicatedLocalSsdProfile message, length delimited. Does not implicitly {@link google.container.v1.LinuxNodeConfig.SwapConfig.DedicatedLocalSsdProfile.verify|verify} messages.
                         * @param message DedicatedLocalSsdProfile message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.container.v1.LinuxNodeConfig.SwapConfig.IDedicatedLocalSsdProfile, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

                        /**
                         * Verifies a DedicatedLocalSsdProfile message.
                         * @param message Plain 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 DedicatedLocalSsdProfile message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns DedicatedLocalSsdProfile
                         */
                        public static fromObject(object: { [k: string]: any }): google.container.v1.LinuxNodeConfig.SwapConfig.DedicatedLocalSsdProfile;

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

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

                        /**
                         * Gets the default type url for DedicatedLocalSsdProfile
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }
                }

                /** Properties of a NodeKernelModuleLoading. */
                interface INodeKernelModuleLoading {

                    /** NodeKernelModuleLoading policy */
                    policy?: (google.container.v1.LinuxNodeConfig.NodeKernelModuleLoading.Policy|keyof typeof google.container.v1.LinuxNodeConfig.NodeKernelModuleLoading.Policy|null);
                }

                /** Represents a NodeKernelModuleLoading. */
                class NodeKernelModuleLoading implements INodeKernelModuleLoading {

                    /**
                     * Constructs a new NodeKernelModuleLoading.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.container.v1.LinuxNodeConfig.INodeKernelModuleLoading);

                    /** NodeKernelModuleLoading policy. */
                    public policy: (google.container.v1.LinuxNodeConfig.NodeKernelModuleLoading.Policy|keyof typeof google.container.v1.LinuxNodeConfig.NodeKernelModuleLoading.Policy);

                    /**
                     * Creates a new NodeKernelModuleLoading instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NodeKernelModuleLoading instance
                     */
                    public static create(properties?: google.container.v1.LinuxNodeConfig.INodeKernelModuleLoading): google.container.v1.LinuxNodeConfig.NodeKernelModuleLoading;

                    /**
                     * Encodes the specified NodeKernelModuleLoading message. Does not implicitly {@link google.container.v1.LinuxNodeConfig.NodeKernelModuleLoading.verify|verify} messages.
                     * @param message NodeKernelModuleLoading message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.container.v1.LinuxNodeConfig.INodeKernelModuleLoading, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NodeKernelModuleLoading message, length delimited. Does not implicitly {@link google.container.v1.LinuxNodeConfig.NodeKernelModuleLoading.verify|verify} messages.
                     * @param message NodeKernelModuleLoading message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.container.v1.LinuxNodeConfig.INodeKernelModuleLoading, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

                    /**
                     * Verifies a NodeKernelModuleLoading message.
                     * @param message Plain 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 NodeKernelModuleLoading message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NodeKernelModuleLoading
                     */
                    public static fromObject(object: { [k: string]: any }): google.container.v1.LinuxNodeConfig.NodeKernelModuleLoading;

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

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

                    /**
                     * Gets the default type url for NodeKernelModuleLoading
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace NodeKernelModuleLoading {

                    /** Policy enum. */
                    enum Policy {
                        POLICY_UNSPECIFIED = 0,
                        ENFORCE_SIGNED_MODULES = 1,
                        DO_NOT_ENFORCE_SIGNED_MODULES = 2
                    }
                }

                /** Properties of an AccurateTimeConfig. */
                interface IAccurateTimeConfig {

                    /** AccurateTimeConfig enablePtpKvmTimeSync */
                    enablePtpKvmTimeSync?: (boolean|null);
                }

                /** Represents an AccurateTimeConfig. */
                class AccurateTimeConfig implements IAccurateTimeConfig {

                    /**
                     * Constructs a new AccurateTimeConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.container.v1.LinuxNodeConfig.IAccurateTimeConfig);

                    /** AccurateTimeConfig enablePtpKvmTimeSync. */
                    public enablePtpKvmTimeSync?: (boolean|null);

                    /**
                     * Creates a new AccurateTimeConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AccurateTimeConfig instance
                     */
                    public static create(properties?: google.container.v1.LinuxNodeConfig.IAccurateTimeConfig): google.container.v1.LinuxNodeConfig.AccurateTimeConfig;

                    /**
                     * Encodes the specified AccurateTimeConfig message. Does not implicitly {@link google.container.v1.LinuxNodeConfig.AccurateTimeConfig.verify|verify} messages.
                     * @param message AccurateTimeConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.container.v1.LinuxNodeConfig.IAccurateTimeConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AccurateTimeConfig message, length delimited. Does not implicitly {@link google.container.v1.LinuxNodeConfig.AccurateTimeConfig.verify|verify} messages.
                     * @param message AccurateTimeConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.container.v1.LinuxNodeConfig.IAccurateTimeConfig, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

                    /**
                     * Verifies an AccurateTimeConfig message.
                     * @param message Plain 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 AccurateTimeConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AccurateTimeConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.container.v1.LinuxNodeConfig.AccurateTimeConfig;

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

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

                    /**
                     * Gets the default type url for AccurateTimeConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }
            }

            /** Properties of a WindowsNodeConfig. */
            interface IWindowsNodeConfig {

                /** WindowsNodeConfig osVersion */
                osVersion?: (google.container.v1.WindowsNodeConfig.OSVersion|keyof typeof google.container.v1.WindowsNodeConfig.OSVersion|null);
            }

            /** Represents a WindowsNodeConfig. */
            class WindowsNodeConfig implements IWindowsNodeConfig {

                /**
                 * Constructs a new WindowsNodeConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IWindowsNodeConfig);

                /** WindowsNodeConfig osVersion. */
                public osVersion: (google.container.v1.WindowsNodeConfig.OSVersion|keyof typeof google.container.v1.WindowsNodeConfig.OSVersion);

                /**
                 * Creates a new WindowsNodeConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns WindowsNodeConfig instance
                 */
                public static create(properties?: google.container.v1.IWindowsNodeConfig): google.container.v1.WindowsNodeConfig;

                /**
                 * Encodes the specified WindowsNodeConfig message. Does not implicitly {@link google.container.v1.WindowsNodeConfig.verify|verify} messages.
                 * @param message WindowsNodeConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IWindowsNodeConfig, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a WindowsNodeConfig message.
                 * @param message Plain 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 WindowsNodeConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns WindowsNodeConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.WindowsNodeConfig;

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

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

                /**
                 * Gets the default type url for WindowsNodeConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace WindowsNodeConfig {

                /** OSVersion enum. */
                enum OSVersion {
                    OS_VERSION_UNSPECIFIED = 0,
                    OS_VERSION_LTSC2019 = 1,
                    OS_VERSION_LTSC2022 = 2
                }
            }

            /** Properties of a NodeKubeletConfig. */
            interface INodeKubeletConfig {

                /** NodeKubeletConfig cpuManagerPolicy */
                cpuManagerPolicy?: (string|null);

                /** NodeKubeletConfig topologyManager */
                topologyManager?: (google.container.v1.ITopologyManager|null);

                /** NodeKubeletConfig memoryManager */
                memoryManager?: (google.container.v1.IMemoryManager|null);

                /** NodeKubeletConfig cpuCfsQuota */
                cpuCfsQuota?: (google.protobuf.IBoolValue|null);

                /** NodeKubeletConfig cpuCfsQuotaPeriod */
                cpuCfsQuotaPeriod?: (string|null);

                /** NodeKubeletConfig podPidsLimit */
                podPidsLimit?: (number|Long|string|null);

                /** NodeKubeletConfig insecureKubeletReadonlyPortEnabled */
                insecureKubeletReadonlyPortEnabled?: (boolean|null);

                /** NodeKubeletConfig imageGcLowThresholdPercent */
                imageGcLowThresholdPercent?: (number|null);

                /** NodeKubeletConfig imageGcHighThresholdPercent */
                imageGcHighThresholdPercent?: (number|null);

                /** NodeKubeletConfig imageMinimumGcAge */
                imageMinimumGcAge?: (string|null);

                /** NodeKubeletConfig imageMaximumGcAge */
                imageMaximumGcAge?: (string|null);

                /** NodeKubeletConfig containerLogMaxSize */
                containerLogMaxSize?: (string|null);

                /** NodeKubeletConfig containerLogMaxFiles */
                containerLogMaxFiles?: (number|null);

                /** NodeKubeletConfig allowedUnsafeSysctls */
                allowedUnsafeSysctls?: (string[]|null);

                /** NodeKubeletConfig evictionSoft */
                evictionSoft?: (google.container.v1.IEvictionSignals|null);

                /** NodeKubeletConfig evictionSoftGracePeriod */
                evictionSoftGracePeriod?: (google.container.v1.IEvictionGracePeriod|null);

                /** NodeKubeletConfig evictionMinimumReclaim */
                evictionMinimumReclaim?: (google.container.v1.IEvictionMinimumReclaim|null);

                /** NodeKubeletConfig evictionMaxPodGracePeriodSeconds */
                evictionMaxPodGracePeriodSeconds?: (number|null);

                /** NodeKubeletConfig maxParallelImagePulls */
                maxParallelImagePulls?: (number|null);

                /** NodeKubeletConfig singleProcessOomKill */
                singleProcessOomKill?: (boolean|null);

                /** NodeKubeletConfig crashLoopBackOff */
                crashLoopBackOff?: (google.container.v1.NodeKubeletConfig.ICrashLoopBackOffConfig|null);

                /** NodeKubeletConfig shutdownGracePeriodSeconds */
                shutdownGracePeriodSeconds?: (number|null);

                /** NodeKubeletConfig shutdownGracePeriodCriticalPodsSeconds */
                shutdownGracePeriodCriticalPodsSeconds?: (number|null);
            }

            /** Represents a NodeKubeletConfig. */
            class NodeKubeletConfig implements INodeKubeletConfig {

                /**
                 * Constructs a new NodeKubeletConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.INodeKubeletConfig);

                /** NodeKubeletConfig cpuManagerPolicy. */
                public cpuManagerPolicy: string;

                /** NodeKubeletConfig topologyManager. */
                public topologyManager?: (google.container.v1.ITopologyManager|null);

                /** NodeKubeletConfig memoryManager. */
                public memoryManager?: (google.container.v1.IMemoryManager|null);

                /** NodeKubeletConfig cpuCfsQuota. */
                public cpuCfsQuota?: (google.protobuf.IBoolValue|null);

                /** NodeKubeletConfig cpuCfsQuotaPeriod. */
                public cpuCfsQuotaPeriod: string;

                /** NodeKubeletConfig podPidsLimit. */
                public podPidsLimit: (number|Long|string);

                /** NodeKubeletConfig insecureKubeletReadonlyPortEnabled. */
                public insecureKubeletReadonlyPortEnabled?: (boolean|null);

                /** NodeKubeletConfig imageGcLowThresholdPercent. */
                public imageGcLowThresholdPercent: number;

                /** NodeKubeletConfig imageGcHighThresholdPercent. */
                public imageGcHighThresholdPercent: number;

                /** NodeKubeletConfig imageMinimumGcAge. */
                public imageMinimumGcAge: string;

                /** NodeKubeletConfig imageMaximumGcAge. */
                public imageMaximumGcAge: string;

                /** NodeKubeletConfig containerLogMaxSize. */
                public containerLogMaxSize: string;

                /** NodeKubeletConfig containerLogMaxFiles. */
                public containerLogMaxFiles: number;

                /** NodeKubeletConfig allowedUnsafeSysctls. */
                public allowedUnsafeSysctls: string[];

                /** NodeKubeletConfig evictionSoft. */
                public evictionSoft?: (google.container.v1.IEvictionSignals|null);

                /** NodeKubeletConfig evictionSoftGracePeriod. */
                public evictionSoftGracePeriod?: (google.container.v1.IEvictionGracePeriod|null);

                /** NodeKubeletConfig evictionMinimumReclaim. */
                public evictionMinimumReclaim?: (google.container.v1.IEvictionMinimumReclaim|null);

                /** NodeKubeletConfig evictionMaxPodGracePeriodSeconds. */
                public evictionMaxPodGracePeriodSeconds: number;

                /** NodeKubeletConfig maxParallelImagePulls. */
                public maxParallelImagePulls: number;

                /** NodeKubeletConfig singleProcessOomKill. */
                public singleProcessOomKill?: (boolean|null);

                /** NodeKubeletConfig crashLoopBackOff. */
                public crashLoopBackOff?: (google.container.v1.NodeKubeletConfig.ICrashLoopBackOffConfig|null);

                /** NodeKubeletConfig shutdownGracePeriodSeconds. */
                public shutdownGracePeriodSeconds?: (number|null);

                /** NodeKubeletConfig shutdownGracePeriodCriticalPodsSeconds. */
                public shutdownGracePeriodCriticalPodsSeconds?: (number|null);

                /**
                 * Creates a new NodeKubeletConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns NodeKubeletConfig instance
                 */
                public static create(properties?: google.container.v1.INodeKubeletConfig): google.container.v1.NodeKubeletConfig;

                /**
                 * Encodes the specified NodeKubeletConfig message. Does not implicitly {@link google.container.v1.NodeKubeletConfig.verify|verify} messages.
                 * @param message NodeKubeletConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.INodeKubeletConfig, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a NodeKubeletConfig message.
                 * @param message Plain 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 NodeKubeletConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns NodeKubeletConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.NodeKubeletConfig;

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

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

                /**
                 * Gets the default type url for NodeKubeletConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace NodeKubeletConfig {

                /** Properties of a CrashLoopBackOffConfig. */
                interface ICrashLoopBackOffConfig {

                    /** CrashLoopBackOffConfig maxContainerRestartPeriod */
                    maxContainerRestartPeriod?: (string|null);
                }

                /** Represents a CrashLoopBackOffConfig. */
                class CrashLoopBackOffConfig implements ICrashLoopBackOffConfig {

                    /**
                     * Constructs a new CrashLoopBackOffConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.container.v1.NodeKubeletConfig.ICrashLoopBackOffConfig);

                    /** CrashLoopBackOffConfig maxContainerRestartPeriod. */
                    public maxContainerRestartPeriod: string;

                    /**
                     * Creates a new CrashLoopBackOffConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CrashLoopBackOffConfig instance
                     */
                    public static create(properties?: google.container.v1.NodeKubeletConfig.ICrashLoopBackOffConfig): google.container.v1.NodeKubeletConfig.CrashLoopBackOffConfig;

                    /**
                     * Encodes the specified CrashLoopBackOffConfig message. Does not implicitly {@link google.container.v1.NodeKubeletConfig.CrashLoopBackOffConfig.verify|verify} messages.
                     * @param message CrashLoopBackOffConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.container.v1.NodeKubeletConfig.ICrashLoopBackOffConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CrashLoopBackOffConfig message, length delimited. Does not implicitly {@link google.container.v1.NodeKubeletConfig.CrashLoopBackOffConfig.verify|verify} messages.
                     * @param message CrashLoopBackOffConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.container.v1.NodeKubeletConfig.ICrashLoopBackOffConfig, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

                    /**
                     * Verifies a CrashLoopBackOffConfig message.
                     * @param message Plain 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 CrashLoopBackOffConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CrashLoopBackOffConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.container.v1.NodeKubeletConfig.CrashLoopBackOffConfig;

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

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

                    /**
                     * Gets the default type url for CrashLoopBackOffConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }
            }

            /** Properties of a TopologyManager. */
            interface ITopologyManager {

                /** TopologyManager policy */
                policy?: (string|null);

                /** TopologyManager scope */
                scope?: (string|null);
            }

            /** Represents a TopologyManager. */
            class TopologyManager implements ITopologyManager {

                /**
                 * Constructs a new TopologyManager.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.ITopologyManager);

                /** TopologyManager policy. */
                public policy: string;

                /** TopologyManager scope. */
                public scope: string;

                /**
                 * Creates a new TopologyManager instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns TopologyManager instance
                 */
                public static create(properties?: google.container.v1.ITopologyManager): google.container.v1.TopologyManager;

                /**
                 * Encodes the specified TopologyManager message. Does not implicitly {@link google.container.v1.TopologyManager.verify|verify} messages.
                 * @param message TopologyManager message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.ITopologyManager, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a TopologyManager message.
                 * @param message Plain 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 TopologyManager message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns TopologyManager
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.TopologyManager;

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

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

                /**
                 * Gets the default type url for TopologyManager
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a MemoryManager. */
            interface IMemoryManager {

                /** MemoryManager policy */
                policy?: (string|null);
            }

            /** Represents a MemoryManager. */
            class MemoryManager implements IMemoryManager {

                /**
                 * Constructs a new MemoryManager.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IMemoryManager);

                /** MemoryManager policy. */
                public policy: string;

                /**
                 * Creates a new MemoryManager instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns MemoryManager instance
                 */
                public static create(properties?: google.container.v1.IMemoryManager): google.container.v1.MemoryManager;

                /**
                 * Encodes the specified MemoryManager message. Does not implicitly {@link google.container.v1.MemoryManager.verify|verify} messages.
                 * @param message MemoryManager message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IMemoryManager, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a MemoryManager message.
                 * @param message Plain 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 MemoryManager message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns MemoryManager
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.MemoryManager;

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

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

                /**
                 * Gets the default type url for MemoryManager
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of an EvictionSignals. */
            interface IEvictionSignals {

                /** EvictionSignals memoryAvailable */
                memoryAvailable?: (string|null);

                /** EvictionSignals nodefsAvailable */
                nodefsAvailable?: (string|null);

                /** EvictionSignals nodefsInodesFree */
                nodefsInodesFree?: (string|null);

                /** EvictionSignals imagefsAvailable */
                imagefsAvailable?: (string|null);

                /** EvictionSignals imagefsInodesFree */
                imagefsInodesFree?: (string|null);

                /** EvictionSignals pidAvailable */
                pidAvailable?: (string|null);
            }

            /** Represents an EvictionSignals. */
            class EvictionSignals implements IEvictionSignals {

                /**
                 * Constructs a new EvictionSignals.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IEvictionSignals);

                /** EvictionSignals memoryAvailable. */
                public memoryAvailable: string;

                /** EvictionSignals nodefsAvailable. */
                public nodefsAvailable: string;

                /** EvictionSignals nodefsInodesFree. */
                public nodefsInodesFree: string;

                /** EvictionSignals imagefsAvailable. */
                public imagefsAvailable: string;

                /** EvictionSignals imagefsInodesFree. */
                public imagefsInodesFree: string;

                /** EvictionSignals pidAvailable. */
                public pidAvailable: string;

                /**
                 * Creates a new EvictionSignals instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns EvictionSignals instance
                 */
                public static create(properties?: google.container.v1.IEvictionSignals): google.container.v1.EvictionSignals;

                /**
                 * Encodes the specified EvictionSignals message. Does not implicitly {@link google.container.v1.EvictionSignals.verify|verify} messages.
                 * @param message EvictionSignals message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IEvictionSignals, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies an EvictionSignals message.
                 * @param message Plain 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 EvictionSignals message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns EvictionSignals
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.EvictionSignals;

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

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

                /**
                 * Gets the default type url for EvictionSignals
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of an EvictionGracePeriod. */
            interface IEvictionGracePeriod {

                /** EvictionGracePeriod memoryAvailable */
                memoryAvailable?: (string|null);

                /** EvictionGracePeriod nodefsAvailable */
                nodefsAvailable?: (string|null);

                /** EvictionGracePeriod nodefsInodesFree */
                nodefsInodesFree?: (string|null);

                /** EvictionGracePeriod imagefsAvailable */
                imagefsAvailable?: (string|null);

                /** EvictionGracePeriod imagefsInodesFree */
                imagefsInodesFree?: (string|null);

                /** EvictionGracePeriod pidAvailable */
                pidAvailable?: (string|null);
            }

            /** Represents an EvictionGracePeriod. */
            class EvictionGracePeriod implements IEvictionGracePeriod {

                /**
                 * Constructs a new EvictionGracePeriod.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IEvictionGracePeriod);

                /** EvictionGracePeriod memoryAvailable. */
                public memoryAvailable: string;

                /** EvictionGracePeriod nodefsAvailable. */
                public nodefsAvailable: string;

                /** EvictionGracePeriod nodefsInodesFree. */
                public nodefsInodesFree: string;

                /** EvictionGracePeriod imagefsAvailable. */
                public imagefsAvailable: string;

                /** EvictionGracePeriod imagefsInodesFree. */
                public imagefsInodesFree: string;

                /** EvictionGracePeriod pidAvailable. */
                public pidAvailable: string;

                /**
                 * Creates a new EvictionGracePeriod instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns EvictionGracePeriod instance
                 */
                public static create(properties?: google.container.v1.IEvictionGracePeriod): google.container.v1.EvictionGracePeriod;

                /**
                 * Encodes the specified EvictionGracePeriod message. Does not implicitly {@link google.container.v1.EvictionGracePeriod.verify|verify} messages.
                 * @param message EvictionGracePeriod message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IEvictionGracePeriod, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies an EvictionGracePeriod message.
                 * @param message Plain 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 EvictionGracePeriod message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns EvictionGracePeriod
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.EvictionGracePeriod;

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

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

                /**
                 * Gets the default type url for EvictionGracePeriod
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of an EvictionMinimumReclaim. */
            interface IEvictionMinimumReclaim {

                /** EvictionMinimumReclaim memoryAvailable */
                memoryAvailable?: (string|null);

                /** EvictionMinimumReclaim nodefsAvailable */
                nodefsAvailable?: (string|null);

                /** EvictionMinimumReclaim nodefsInodesFree */
                nodefsInodesFree?: (string|null);

                /** EvictionMinimumReclaim imagefsAvailable */
                imagefsAvailable?: (string|null);

                /** EvictionMinimumReclaim imagefsInodesFree */
                imagefsInodesFree?: (string|null);

                /** EvictionMinimumReclaim pidAvailable */
                pidAvailable?: (string|null);
            }

            /** Represents an EvictionMinimumReclaim. */
            class EvictionMinimumReclaim implements IEvictionMinimumReclaim {

                /**
                 * Constructs a new EvictionMinimumReclaim.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IEvictionMinimumReclaim);

                /** EvictionMinimumReclaim memoryAvailable. */
                public memoryAvailable: string;

                /** EvictionMinimumReclaim nodefsAvailable. */
                public nodefsAvailable: string;

                /** EvictionMinimumReclaim nodefsInodesFree. */
                public nodefsInodesFree: string;

                /** EvictionMinimumReclaim imagefsAvailable. */
                public imagefsAvailable: string;

                /** EvictionMinimumReclaim imagefsInodesFree. */
                public imagefsInodesFree: string;

                /** EvictionMinimumReclaim pidAvailable. */
                public pidAvailable: string;

                /**
                 * Creates a new EvictionMinimumReclaim instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns EvictionMinimumReclaim instance
                 */
                public static create(properties?: google.container.v1.IEvictionMinimumReclaim): google.container.v1.EvictionMinimumReclaim;

                /**
                 * Encodes the specified EvictionMinimumReclaim message. Does not implicitly {@link google.container.v1.EvictionMinimumReclaim.verify|verify} messages.
                 * @param message EvictionMinimumReclaim message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IEvictionMinimumReclaim, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies an EvictionMinimumReclaim message.
                 * @param message Plain 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 EvictionMinimumReclaim message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns EvictionMinimumReclaim
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.EvictionMinimumReclaim;

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

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

                /**
                 * Gets the default type url for EvictionMinimumReclaim
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a NodeConfig. */
            interface INodeConfig {

                /** NodeConfig machineType */
                machineType?: (string|null);

                /** NodeConfig diskSizeGb */
                diskSizeGb?: (number|null);

                /** NodeConfig oauthScopes */
                oauthScopes?: (string[]|null);

                /** NodeConfig serviceAccount */
                serviceAccount?: (string|null);

                /** NodeConfig metadata */
                metadata?: ({ [k: string]: string }|null);

                /** NodeConfig imageType */
                imageType?: (string|null);

                /** NodeConfig labels */
                labels?: ({ [k: string]: string }|null);

                /** NodeConfig localSsdCount */
                localSsdCount?: (number|null);

                /** NodeConfig tags */
                tags?: (string[]|null);

                /** NodeConfig preemptible */
                preemptible?: (boolean|null);

                /** NodeConfig accelerators */
                accelerators?: (google.container.v1.IAcceleratorConfig[]|null);

                /** NodeConfig diskType */
                diskType?: (string|null);

                /** NodeConfig minCpuPlatform */
                minCpuPlatform?: (string|null);

                /** NodeConfig workloadMetadataConfig */
                workloadMetadataConfig?: (google.container.v1.IWorkloadMetadataConfig|null);

                /** NodeConfig taints */
                taints?: (google.container.v1.INodeTaint[]|null);

                /** NodeConfig sandboxConfig */
                sandboxConfig?: (google.container.v1.ISandboxConfig|null);

                /** NodeConfig nodeGroup */
                nodeGroup?: (string|null);

                /** NodeConfig reservationAffinity */
                reservationAffinity?: (google.container.v1.IReservationAffinity|null);

                /** NodeConfig shieldedInstanceConfig */
                shieldedInstanceConfig?: (google.container.v1.IShieldedInstanceConfig|null);

                /** NodeConfig linuxNodeConfig */
                linuxNodeConfig?: (google.container.v1.ILinuxNodeConfig|null);

                /** NodeConfig kubeletConfig */
                kubeletConfig?: (google.container.v1.INodeKubeletConfig|null);

                /** NodeConfig bootDiskKmsKey */
                bootDiskKmsKey?: (string|null);

                /** NodeConfig gcfsConfig */
                gcfsConfig?: (google.container.v1.IGcfsConfig|null);

                /** NodeConfig advancedMachineFeatures */
                advancedMachineFeatures?: (google.container.v1.IAdvancedMachineFeatures|null);

                /** NodeConfig gvnic */
                gvnic?: (google.container.v1.IVirtualNIC|null);

                /** NodeConfig spot */
                spot?: (boolean|null);

                /** NodeConfig confidentialNodes */
                confidentialNodes?: (google.container.v1.IConfidentialNodes|null);

                /** NodeConfig fastSocket */
                fastSocket?: (google.container.v1.IFastSocket|null);

                /** NodeConfig resourceLabels */
                resourceLabels?: ({ [k: string]: string }|null);

                /** NodeConfig loggingConfig */
                loggingConfig?: (google.container.v1.INodePoolLoggingConfig|null);

                /** NodeConfig windowsNodeConfig */
                windowsNodeConfig?: (google.container.v1.IWindowsNodeConfig|null);

                /** NodeConfig localNvmeSsdBlockConfig */
                localNvmeSsdBlockConfig?: (google.container.v1.ILocalNvmeSsdBlockConfig|null);

                /** NodeConfig ephemeralStorageLocalSsdConfig */
                ephemeralStorageLocalSsdConfig?: (google.container.v1.IEphemeralStorageLocalSsdConfig|null);

                /** NodeConfig soleTenantConfig */
                soleTenantConfig?: (google.container.v1.ISoleTenantConfig|null);

                /** NodeConfig containerdConfig */
                containerdConfig?: (google.container.v1.IContainerdConfig|null);

                /** NodeConfig resourceManagerTags */
                resourceManagerTags?: (google.container.v1.IResourceManagerTags|null);

                /** NodeConfig enableConfidentialStorage */
                enableConfidentialStorage?: (boolean|null);

                /** NodeConfig secondaryBootDisks */
                secondaryBootDisks?: (google.container.v1.ISecondaryBootDisk[]|null);

                /** NodeConfig storagePools */
                storagePools?: (string[]|null);

                /** NodeConfig secondaryBootDiskUpdateStrategy */
                secondaryBootDiskUpdateStrategy?: (google.container.v1.ISecondaryBootDiskUpdateStrategy|null);

                /** NodeConfig gpuDirectConfig */
                gpuDirectConfig?: (google.container.v1.IGPUDirectConfig|null);

                /** NodeConfig maxRunDuration */
                maxRunDuration?: (google.protobuf.IDuration|null);

                /** NodeConfig localSsdEncryptionMode */
                localSsdEncryptionMode?: (google.container.v1.NodeConfig.LocalSsdEncryptionMode|keyof typeof google.container.v1.NodeConfig.LocalSsdEncryptionMode|null);

                /** NodeConfig effectiveCgroupMode */
                effectiveCgroupMode?: (google.container.v1.NodeConfig.EffectiveCgroupMode|keyof typeof google.container.v1.NodeConfig.EffectiveCgroupMode|null);

                /** NodeConfig flexStart */
                flexStart?: (boolean|null);

                /** NodeConfig bootDisk */
                bootDisk?: (google.container.v1.IBootDisk|null);

                /** NodeConfig consolidationDelay */
                consolidationDelay?: (google.protobuf.IDuration|null);

                /** NodeConfig taintConfig */
                taintConfig?: (google.container.v1.ITaintConfig|null);
            }

            /** Represents a NodeConfig. */
            class NodeConfig implements INodeConfig {

                /**
                 * Constructs a new NodeConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.INodeConfig);

                /** NodeConfig machineType. */
                public machineType: string;

                /** NodeConfig diskSizeGb. */
                public diskSizeGb: number;

                /** NodeConfig oauthScopes. */
                public oauthScopes: string[];

                /** NodeConfig serviceAccount. */
                public serviceAccount: string;

                /** NodeConfig metadata. */
                public metadata: { [k: string]: string };

                /** NodeConfig imageType. */
                public imageType: string;

                /** NodeConfig labels. */
                public labels: { [k: string]: string };

                /** NodeConfig localSsdCount. */
                public localSsdCount: number;

                /** NodeConfig tags. */
                public tags: string[];

                /** NodeConfig preemptible. */
                public preemptible: boolean;

                /** NodeConfig accelerators. */
                public accelerators: google.container.v1.IAcceleratorConfig[];

                /** NodeConfig diskType. */
                public diskType: string;

                /** NodeConfig minCpuPlatform. */
                public minCpuPlatform: string;

                /** NodeConfig workloadMetadataConfig. */
                public workloadMetadataConfig?: (google.container.v1.IWorkloadMetadataConfig|null);

                /** NodeConfig taints. */
                public taints: google.container.v1.INodeTaint[];

                /** NodeConfig sandboxConfig. */
                public sandboxConfig?: (google.container.v1.ISandboxConfig|null);

                /** NodeConfig nodeGroup. */
                public nodeGroup: string;

                /** NodeConfig reservationAffinity. */
                public reservationAffinity?: (google.container.v1.IReservationAffinity|null);

                /** NodeConfig shieldedInstanceConfig. */
                public shieldedInstanceConfig?: (google.container.v1.IShieldedInstanceConfig|null);

                /** NodeConfig linuxNodeConfig. */
                public linuxNodeConfig?: (google.container.v1.ILinuxNodeConfig|null);

                /** NodeConfig kubeletConfig. */
                public kubeletConfig?: (google.container.v1.INodeKubeletConfig|null);

                /** NodeConfig bootDiskKmsKey. */
                public bootDiskKmsKey: string;

                /** NodeConfig gcfsConfig. */
                public gcfsConfig?: (google.container.v1.IGcfsConfig|null);

                /** NodeConfig advancedMachineFeatures. */
                public advancedMachineFeatures?: (google.container.v1.IAdvancedMachineFeatures|null);

                /** NodeConfig gvnic. */
                public gvnic?: (google.container.v1.IVirtualNIC|null);

                /** NodeConfig spot. */
                public spot: boolean;

                /** NodeConfig confidentialNodes. */
                public confidentialNodes?: (google.container.v1.IConfidentialNodes|null);

                /** NodeConfig fastSocket. */
                public fastSocket?: (google.container.v1.IFastSocket|null);

                /** NodeConfig resourceLabels. */
                public resourceLabels: { [k: string]: string };

                /** NodeConfig loggingConfig. */
                public loggingConfig?: (google.container.v1.INodePoolLoggingConfig|null);

                /** NodeConfig windowsNodeConfig. */
                public windowsNodeConfig?: (google.container.v1.IWindowsNodeConfig|null);

                /** NodeConfig localNvmeSsdBlockConfig. */
                public localNvmeSsdBlockConfig?: (google.container.v1.ILocalNvmeSsdBlockConfig|null);

                /** NodeConfig ephemeralStorageLocalSsdConfig. */
                public ephemeralStorageLocalSsdConfig?: (google.container.v1.IEphemeralStorageLocalSsdConfig|null);

                /** NodeConfig soleTenantConfig. */
                public soleTenantConfig?: (google.container.v1.ISoleTenantConfig|null);

                /** NodeConfig containerdConfig. */
                public containerdConfig?: (google.container.v1.IContainerdConfig|null);

                /** NodeConfig resourceManagerTags. */
                public resourceManagerTags?: (google.container.v1.IResourceManagerTags|null);

                /** NodeConfig enableConfidentialStorage. */
                public enableConfidentialStorage: boolean;

                /** NodeConfig secondaryBootDisks. */
                public secondaryBootDisks: google.container.v1.ISecondaryBootDisk[];

                /** NodeConfig storagePools. */
                public storagePools: string[];

                /** NodeConfig secondaryBootDiskUpdateStrategy. */
                public secondaryBootDiskUpdateStrategy?: (google.container.v1.ISecondaryBootDiskUpdateStrategy|null);

                /** NodeConfig gpuDirectConfig. */
                public gpuDirectConfig?: (google.container.v1.IGPUDirectConfig|null);

                /** NodeConfig maxRunDuration. */
                public maxRunDuration?: (google.protobuf.IDuration|null);

                /** NodeConfig localSsdEncryptionMode. */
                public localSsdEncryptionMode?: (google.container.v1.NodeConfig.LocalSsdEncryptionMode|keyof typeof google.container.v1.NodeConfig.LocalSsdEncryptionMode|null);

                /** NodeConfig effectiveCgroupMode. */
                public effectiveCgroupMode: (google.container.v1.NodeConfig.EffectiveCgroupMode|keyof typeof google.container.v1.NodeConfig.EffectiveCgroupMode);

                /** NodeConfig flexStart. */
                public flexStart?: (boolean|null);

                /** NodeConfig bootDisk. */
                public bootDisk?: (google.container.v1.IBootDisk|null);

                /** NodeConfig consolidationDelay. */
                public consolidationDelay?: (google.protobuf.IDuration|null);

                /** NodeConfig taintConfig. */
                public taintConfig?: (google.container.v1.ITaintConfig|null);

                /**
                 * Creates a new NodeConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns NodeConfig instance
                 */
                public static create(properties?: google.container.v1.INodeConfig): google.container.v1.NodeConfig;

                /**
                 * Encodes the specified NodeConfig message. Does not implicitly {@link google.container.v1.NodeConfig.verify|verify} messages.
                 * @param message NodeConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.INodeConfig, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a NodeConfig message.
                 * @param message Plain 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 NodeConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns NodeConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.NodeConfig;

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

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

                /**
                 * Gets the default type url for NodeConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace NodeConfig {

                /** LocalSsdEncryptionMode enum. */
                enum LocalSsdEncryptionMode {
                    LOCAL_SSD_ENCRYPTION_MODE_UNSPECIFIED = 0,
                    STANDARD_ENCRYPTION = 1,
                    EPHEMERAL_KEY_ENCRYPTION = 2
                }

                /** EffectiveCgroupMode enum. */
                enum EffectiveCgroupMode {
                    EFFECTIVE_CGROUP_MODE_UNSPECIFIED = 0,
                    EFFECTIVE_CGROUP_MODE_V1 = 1,
                    EFFECTIVE_CGROUP_MODE_V2 = 2
                }
            }

            /** Properties of a TaintConfig. */
            interface ITaintConfig {

                /** TaintConfig architectureTaintBehavior */
                architectureTaintBehavior?: (google.container.v1.TaintConfig.ArchitectureTaintBehavior|keyof typeof google.container.v1.TaintConfig.ArchitectureTaintBehavior|null);
            }

            /** Represents a TaintConfig. */
            class TaintConfig implements ITaintConfig {

                /**
                 * Constructs a new TaintConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.ITaintConfig);

                /** TaintConfig architectureTaintBehavior. */
                public architectureTaintBehavior?: (google.container.v1.TaintConfig.ArchitectureTaintBehavior|keyof typeof google.container.v1.TaintConfig.ArchitectureTaintBehavior|null);

                /**
                 * Creates a new TaintConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns TaintConfig instance
                 */
                public static create(properties?: google.container.v1.ITaintConfig): google.container.v1.TaintConfig;

                /**
                 * Encodes the specified TaintConfig message. Does not implicitly {@link google.container.v1.TaintConfig.verify|verify} messages.
                 * @param message TaintConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.ITaintConfig, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a TaintConfig message.
                 * @param message Plain 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 TaintConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns TaintConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.TaintConfig;

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

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

                /**
                 * Gets the default type url for TaintConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace TaintConfig {

                /** ArchitectureTaintBehavior enum. */
                enum ArchitectureTaintBehavior {
                    ARCHITECTURE_TAINT_BEHAVIOR_UNSPECIFIED = 0,
                    NONE = 1,
                    ARM = 2
                }
            }

            /** Properties of an AdvancedMachineFeatures. */
            interface IAdvancedMachineFeatures {

                /** AdvancedMachineFeatures threadsPerCore */
                threadsPerCore?: (number|Long|string|null);

                /** AdvancedMachineFeatures enableNestedVirtualization */
                enableNestedVirtualization?: (boolean|null);

                /** AdvancedMachineFeatures performanceMonitoringUnit */
                performanceMonitoringUnit?: (google.container.v1.AdvancedMachineFeatures.PerformanceMonitoringUnit|keyof typeof google.container.v1.AdvancedMachineFeatures.PerformanceMonitoringUnit|null);
            }

            /** Represents an AdvancedMachineFeatures. */
            class AdvancedMachineFeatures implements IAdvancedMachineFeatures {

                /**
                 * Constructs a new AdvancedMachineFeatures.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IAdvancedMachineFeatures);

                /** AdvancedMachineFeatures threadsPerCore. */
                public threadsPerCore?: (number|Long|string|null);

                /** AdvancedMachineFeatures enableNestedVirtualization. */
                public enableNestedVirtualization?: (boolean|null);

                /** AdvancedMachineFeatures performanceMonitoringUnit. */
                public performanceMonitoringUnit?: (google.container.v1.AdvancedMachineFeatures.PerformanceMonitoringUnit|keyof typeof google.container.v1.AdvancedMachineFeatures.PerformanceMonitoringUnit|null);

                /**
                 * Creates a new AdvancedMachineFeatures instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns AdvancedMachineFeatures instance
                 */
                public static create(properties?: google.container.v1.IAdvancedMachineFeatures): google.container.v1.AdvancedMachineFeatures;

                /**
                 * Encodes the specified AdvancedMachineFeatures message. Does not implicitly {@link google.container.v1.AdvancedMachineFeatures.verify|verify} messages.
                 * @param message AdvancedMachineFeatures message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IAdvancedMachineFeatures, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies an AdvancedMachineFeatures message.
                 * @param message Plain 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 AdvancedMachineFeatures message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns AdvancedMachineFeatures
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.AdvancedMachineFeatures;

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

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

                /**
                 * Gets the default type url for AdvancedMachineFeatures
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace AdvancedMachineFeatures {

                /** PerformanceMonitoringUnit enum. */
                enum PerformanceMonitoringUnit {
                    PERFORMANCE_MONITORING_UNIT_UNSPECIFIED = 0,
                    ARCHITECTURAL = 1,
                    STANDARD = 2,
                    ENHANCED = 3
                }
            }

            /** Properties of a NodeNetworkConfig. */
            interface INodeNetworkConfig {

                /** NodeNetworkConfig createPodRange */
                createPodRange?: (boolean|null);

                /** NodeNetworkConfig podRange */
                podRange?: (string|null);

                /** NodeNetworkConfig podIpv4CidrBlock */
                podIpv4CidrBlock?: (string|null);

                /** NodeNetworkConfig enablePrivateNodes */
                enablePrivateNodes?: (boolean|null);

                /** NodeNetworkConfig networkPerformanceConfig */
                networkPerformanceConfig?: (google.container.v1.NodeNetworkConfig.INetworkPerformanceConfig|null);

                /** NodeNetworkConfig podCidrOverprovisionConfig */
                podCidrOverprovisionConfig?: (google.container.v1.IPodCIDROverprovisionConfig|null);

                /** NodeNetworkConfig additionalNodeNetworkConfigs */
                additionalNodeNetworkConfigs?: (google.container.v1.IAdditionalNodeNetworkConfig[]|null);

                /** NodeNetworkConfig additionalPodNetworkConfigs */
                additionalPodNetworkConfigs?: (google.container.v1.IAdditionalPodNetworkConfig[]|null);

                /** NodeNetworkConfig podIpv4RangeUtilization */
                podIpv4RangeUtilization?: (number|null);

                /** NodeNetworkConfig subnetwork */
                subnetwork?: (string|null);

                /** NodeNetworkConfig networkTierConfig */
                networkTierConfig?: (google.container.v1.INetworkTierConfig|null);

                /** NodeNetworkConfig acceleratorNetworkProfile */
                acceleratorNetworkProfile?: (string|null);
            }

            /** Represents a NodeNetworkConfig. */
            class NodeNetworkConfig implements INodeNetworkConfig {

                /**
                 * Constructs a new NodeNetworkConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.INodeNetworkConfig);

                /** NodeNetworkConfig createPodRange. */
                public createPodRange: boolean;

                /** NodeNetworkConfig podRange. */
                public podRange: string;

                /** NodeNetworkConfig podIpv4CidrBlock. */
                public podIpv4CidrBlock: string;

                /** NodeNetworkConfig enablePrivateNodes. */
                public enablePrivateNodes?: (boolean|null);

                /** NodeNetworkConfig networkPerformanceConfig. */
                public networkPerformanceConfig?: (google.container.v1.NodeNetworkConfig.INetworkPerformanceConfig|null);

                /** NodeNetworkConfig podCidrOverprovisionConfig. */
                public podCidrOverprovisionConfig?: (google.container.v1.IPodCIDROverprovisionConfig|null);

                /** NodeNetworkConfig additionalNodeNetworkConfigs. */
                public additionalNodeNetworkConfigs: google.container.v1.IAdditionalNodeNetworkConfig[];

                /** NodeNetworkConfig additionalPodNetworkConfigs. */
                public additionalPodNetworkConfigs: google.container.v1.IAdditionalPodNetworkConfig[];

                /** NodeNetworkConfig podIpv4RangeUtilization. */
                public podIpv4RangeUtilization: number;

                /** NodeNetworkConfig subnetwork. */
                public subnetwork: string;

                /** NodeNetworkConfig networkTierConfig. */
                public networkTierConfig?: (google.container.v1.INetworkTierConfig|null);

                /** NodeNetworkConfig acceleratorNetworkProfile. */
                public acceleratorNetworkProfile: string;

                /**
                 * Creates a new NodeNetworkConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns NodeNetworkConfig instance
                 */
                public static create(properties?: google.container.v1.INodeNetworkConfig): google.container.v1.NodeNetworkConfig;

                /**
                 * Encodes the specified NodeNetworkConfig message. Does not implicitly {@link google.container.v1.NodeNetworkConfig.verify|verify} messages.
                 * @param message NodeNetworkConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.INodeNetworkConfig, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a NodeNetworkConfig message.
                 * @param message Plain 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 NodeNetworkConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns NodeNetworkConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.NodeNetworkConfig;

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

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

                /**
                 * Gets the default type url for NodeNetworkConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace NodeNetworkConfig {

                /** Properties of a NetworkPerformanceConfig. */
                interface INetworkPerformanceConfig {

                    /** NetworkPerformanceConfig totalEgressBandwidthTier */
                    totalEgressBandwidthTier?: (google.container.v1.NodeNetworkConfig.NetworkPerformanceConfig.Tier|keyof typeof google.container.v1.NodeNetworkConfig.NetworkPerformanceConfig.Tier|null);
                }

                /** Represents a NetworkPerformanceConfig. */
                class NetworkPerformanceConfig implements INetworkPerformanceConfig {

                    /**
                     * Constructs a new NetworkPerformanceConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.container.v1.NodeNetworkConfig.INetworkPerformanceConfig);

                    /** NetworkPerformanceConfig totalEgressBandwidthTier. */
                    public totalEgressBandwidthTier?: (google.container.v1.NodeNetworkConfig.NetworkPerformanceConfig.Tier|keyof typeof google.container.v1.NodeNetworkConfig.NetworkPerformanceConfig.Tier|null);

                    /**
                     * Creates a new NetworkPerformanceConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkPerformanceConfig instance
                     */
                    public static create(properties?: google.container.v1.NodeNetworkConfig.INetworkPerformanceConfig): google.container.v1.NodeNetworkConfig.NetworkPerformanceConfig;

                    /**
                     * Encodes the specified NetworkPerformanceConfig message. Does not implicitly {@link google.container.v1.NodeNetworkConfig.NetworkPerformanceConfig.verify|verify} messages.
                     * @param message NetworkPerformanceConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.container.v1.NodeNetworkConfig.INetworkPerformanceConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkPerformanceConfig message, length delimited. Does not implicitly {@link google.container.v1.NodeNetworkConfig.NetworkPerformanceConfig.verify|verify} messages.
                     * @param message NetworkPerformanceConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.container.v1.NodeNetworkConfig.INetworkPerformanceConfig, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

                    /**
                     * Verifies a NetworkPerformanceConfig message.
                     * @param message Plain 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 NetworkPerformanceConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworkPerformanceConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.container.v1.NodeNetworkConfig.NetworkPerformanceConfig;

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

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

                    /**
                     * Gets the default type url for NetworkPerformanceConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace NetworkPerformanceConfig {

                    /** Tier enum. */
                    enum Tier {
                        TIER_UNSPECIFIED = 0,
                        TIER_1 = 1
                    }
                }
            }

            /** Properties of an AdditionalNodeNetworkConfig. */
            interface IAdditionalNodeNetworkConfig {

                /** AdditionalNodeNetworkConfig network */
                network?: (string|null);

                /** AdditionalNodeNetworkConfig subnetwork */
                subnetwork?: (string|null);
            }

            /** Represents an AdditionalNodeNetworkConfig. */
            class AdditionalNodeNetworkConfig implements IAdditionalNodeNetworkConfig {

                /**
                 * Constructs a new AdditionalNodeNetworkConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IAdditionalNodeNetworkConfig);

                /** AdditionalNodeNetworkConfig network. */
                public network: string;

                /** AdditionalNodeNetworkConfig subnetwork. */
                public subnetwork: string;

                /**
                 * Creates a new AdditionalNodeNetworkConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns AdditionalNodeNetworkConfig instance
                 */
                public static create(properties?: google.container.v1.IAdditionalNodeNetworkConfig): google.container.v1.AdditionalNodeNetworkConfig;

                /**
                 * Encodes the specified AdditionalNodeNetworkConfig message. Does not implicitly {@link google.container.v1.AdditionalNodeNetworkConfig.verify|verify} messages.
                 * @param message AdditionalNodeNetworkConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IAdditionalNodeNetworkConfig, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies an AdditionalNodeNetworkConfig message.
                 * @param message Plain 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 AdditionalNodeNetworkConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns AdditionalNodeNetworkConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.AdditionalNodeNetworkConfig;

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

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

                /**
                 * Gets the default type url for AdditionalNodeNetworkConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of an AdditionalPodNetworkConfig. */
            interface IAdditionalPodNetworkConfig {

                /** AdditionalPodNetworkConfig subnetwork */
                subnetwork?: (string|null);

                /** AdditionalPodNetworkConfig secondaryPodRange */
                secondaryPodRange?: (string|null);

                /** AdditionalPodNetworkConfig maxPodsPerNode */
                maxPodsPerNode?: (google.container.v1.IMaxPodsConstraint|null);
            }

            /** Represents an AdditionalPodNetworkConfig. */
            class AdditionalPodNetworkConfig implements IAdditionalPodNetworkConfig {

                /**
                 * Constructs a new AdditionalPodNetworkConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IAdditionalPodNetworkConfig);

                /** AdditionalPodNetworkConfig subnetwork. */
                public subnetwork: string;

                /** AdditionalPodNetworkConfig secondaryPodRange. */
                public secondaryPodRange: string;

                /** AdditionalPodNetworkConfig maxPodsPerNode. */
                public maxPodsPerNode?: (google.container.v1.IMaxPodsConstraint|null);

                /**
                 * Creates a new AdditionalPodNetworkConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns AdditionalPodNetworkConfig instance
                 */
                public static create(properties?: google.container.v1.IAdditionalPodNetworkConfig): google.container.v1.AdditionalPodNetworkConfig;

                /**
                 * Encodes the specified AdditionalPodNetworkConfig message. Does not implicitly {@link google.container.v1.AdditionalPodNetworkConfig.verify|verify} messages.
                 * @param message AdditionalPodNetworkConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IAdditionalPodNetworkConfig, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies an AdditionalPodNetworkConfig message.
                 * @param message Plain 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 AdditionalPodNetworkConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns AdditionalPodNetworkConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.AdditionalPodNetworkConfig;

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

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

                /**
                 * Gets the default type url for AdditionalPodNetworkConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a ShieldedInstanceConfig. */
            interface IShieldedInstanceConfig {

                /** ShieldedInstanceConfig enableSecureBoot */
                enableSecureBoot?: (boolean|null);

                /** ShieldedInstanceConfig enableIntegrityMonitoring */
                enableIntegrityMonitoring?: (boolean|null);
            }

            /** Represents a ShieldedInstanceConfig. */
            class ShieldedInstanceConfig implements IShieldedInstanceConfig {

                /**
                 * Constructs a new ShieldedInstanceConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IShieldedInstanceConfig);

                /** ShieldedInstanceConfig enableSecureBoot. */
                public enableSecureBoot: boolean;

                /** ShieldedInstanceConfig enableIntegrityMonitoring. */
                public enableIntegrityMonitoring: boolean;

                /**
                 * Creates a new ShieldedInstanceConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ShieldedInstanceConfig instance
                 */
                public static create(properties?: google.container.v1.IShieldedInstanceConfig): google.container.v1.ShieldedInstanceConfig;

                /**
                 * Encodes the specified ShieldedInstanceConfig message. Does not implicitly {@link google.container.v1.ShieldedInstanceConfig.verify|verify} messages.
                 * @param message ShieldedInstanceConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IShieldedInstanceConfig, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a ShieldedInstanceConfig message.
                 * @param message Plain 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 ShieldedInstanceConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ShieldedInstanceConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.ShieldedInstanceConfig;

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

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

                /**
                 * Gets the default type url for ShieldedInstanceConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a SandboxConfig. */
            interface ISandboxConfig {

                /** SandboxConfig type */
                type?: (google.container.v1.SandboxConfig.Type|keyof typeof google.container.v1.SandboxConfig.Type|null);
            }

            /** Represents a SandboxConfig. */
            class SandboxConfig implements ISandboxConfig {

                /**
                 * Constructs a new SandboxConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.ISandboxConfig);

                /** SandboxConfig type. */
                public type: (google.container.v1.SandboxConfig.Type|keyof typeof google.container.v1.SandboxConfig.Type);

                /**
                 * Creates a new SandboxConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns SandboxConfig instance
                 */
                public static create(properties?: google.container.v1.ISandboxConfig): google.container.v1.SandboxConfig;

                /**
                 * Encodes the specified SandboxConfig message. Does not implicitly {@link google.container.v1.SandboxConfig.verify|verify} messages.
                 * @param message SandboxConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.ISandboxConfig, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a SandboxConfig message.
                 * @param message Plain 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 SandboxConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns SandboxConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.SandboxConfig;

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

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

                /**
                 * Gets the default type url for SandboxConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace SandboxConfig {

                /** Type enum. */
                enum Type {
                    UNSPECIFIED = 0,
                    GVISOR = 1
                }
            }

            /** Properties of a GcfsConfig. */
            interface IGcfsConfig {

                /** GcfsConfig enabled */
                enabled?: (boolean|null);
            }

            /** Represents a GcfsConfig. */
            class GcfsConfig implements IGcfsConfig {

                /**
                 * Constructs a new GcfsConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IGcfsConfig);

                /** GcfsConfig enabled. */
                public enabled: boolean;

                /**
                 * Creates a new GcfsConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns GcfsConfig instance
                 */
                public static create(properties?: google.container.v1.IGcfsConfig): google.container.v1.GcfsConfig;

                /**
                 * Encodes the specified GcfsConfig message. Does not implicitly {@link google.container.v1.GcfsConfig.verify|verify} messages.
                 * @param message GcfsConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IGcfsConfig, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a GcfsConfig message.
                 * @param message Plain 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 GcfsConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns GcfsConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.GcfsConfig;

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

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

                /**
                 * Gets the default type url for GcfsConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a ReservationAffinity. */
            interface IReservationAffinity {

                /** ReservationAffinity consumeReservationType */
                consumeReservationType?: (google.container.v1.ReservationAffinity.Type|keyof typeof google.container.v1.ReservationAffinity.Type|null);

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

                /** ReservationAffinity values */
                values?: (string[]|null);
            }

            /** Represents a ReservationAffinity. */
            class ReservationAffinity implements IReservationAffinity {

                /**
                 * Constructs a new ReservationAffinity.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IReservationAffinity);

                /** ReservationAffinity consumeReservationType. */
                public consumeReservationType: (google.container.v1.ReservationAffinity.Type|keyof typeof google.container.v1.ReservationAffinity.Type);

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

                /** ReservationAffinity values. */
                public values: string[];

                /**
                 * Creates a new ReservationAffinity instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ReservationAffinity instance
                 */
                public static create(properties?: google.container.v1.IReservationAffinity): google.container.v1.ReservationAffinity;

                /**
                 * Encodes the specified ReservationAffinity message. Does not implicitly {@link google.container.v1.ReservationAffinity.verify|verify} messages.
                 * @param message ReservationAffinity message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IReservationAffinity, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a ReservationAffinity message.
                 * @param message Plain 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 ReservationAffinity message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ReservationAffinity
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.ReservationAffinity;

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

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

                /**
                 * Gets the default type url for ReservationAffinity
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace ReservationAffinity {

                /** Type enum. */
                enum Type {
                    UNSPECIFIED = 0,
                    NO_RESERVATION = 1,
                    ANY_RESERVATION = 2,
                    SPECIFIC_RESERVATION = 3
                }
            }

            /** Properties of a SoleTenantConfig. */
            interface ISoleTenantConfig {

                /** SoleTenantConfig nodeAffinities */
                nodeAffinities?: (google.container.v1.SoleTenantConfig.INodeAffinity[]|null);

                /** SoleTenantConfig minNodeCpus */
                minNodeCpus?: (number|null);
            }

            /** Represents a SoleTenantConfig. */
            class SoleTenantConfig implements ISoleTenantConfig {

                /**
                 * Constructs a new SoleTenantConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.ISoleTenantConfig);

                /** SoleTenantConfig nodeAffinities. */
                public nodeAffinities: google.container.v1.SoleTenantConfig.INodeAffinity[];

                /** SoleTenantConfig minNodeCpus. */
                public minNodeCpus?: (number|null);

                /**
                 * Creates a new SoleTenantConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns SoleTenantConfig instance
                 */
                public static create(properties?: google.container.v1.ISoleTenantConfig): google.container.v1.SoleTenantConfig;

                /**
                 * Encodes the specified SoleTenantConfig message. Does not implicitly {@link google.container.v1.SoleTenantConfig.verify|verify} messages.
                 * @param message SoleTenantConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.ISoleTenantConfig, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a SoleTenantConfig message.
                 * @param message Plain 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 SoleTenantConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns SoleTenantConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.SoleTenantConfig;

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

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

                /**
                 * Gets the default type url for SoleTenantConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace SoleTenantConfig {

                /** Properties of a NodeAffinity. */
                interface INodeAffinity {

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

                    /** NodeAffinity operator */
                    operator?: (google.container.v1.SoleTenantConfig.NodeAffinity.Operator|keyof typeof google.container.v1.SoleTenantConfig.NodeAffinity.Operator|null);

                    /** NodeAffinity values */
                    values?: (string[]|null);
                }

                /** Represents a NodeAffinity. */
                class NodeAffinity implements INodeAffinity {

                    /**
                     * Constructs a new NodeAffinity.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.container.v1.SoleTenantConfig.INodeAffinity);

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

                    /** NodeAffinity operator. */
                    public operator: (google.container.v1.SoleTenantConfig.NodeAffinity.Operator|keyof typeof google.container.v1.SoleTenantConfig.NodeAffinity.Operator);

                    /** NodeAffinity values. */
                    public values: string[];

                    /**
                     * Creates a new NodeAffinity instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NodeAffinity instance
                     */
                    public static create(properties?: google.container.v1.SoleTenantConfig.INodeAffinity): google.container.v1.SoleTenantConfig.NodeAffinity;

                    /**
                     * Encodes the specified NodeAffinity message. Does not implicitly {@link google.container.v1.SoleTenantConfig.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: google.container.v1.SoleTenantConfig.INodeAffinity, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NodeAffinity message, length delimited. Does not implicitly {@link google.container.v1.SoleTenantConfig.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: google.container.v1.SoleTenantConfig.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): google.container.v1.SoleTenantConfig.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)): google.container.v1.SoleTenantConfig.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 }): google.container.v1.SoleTenantConfig.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: google.container.v1.SoleTenantConfig.NodeAffinity, options?: $protobuf.IConversionOptions): { [k: string]: any };

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

                    /**
                     * Gets the default type url for NodeAffinity
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace NodeAffinity {

                    /** Operator enum. */
                    enum Operator {
                        OPERATOR_UNSPECIFIED = 0,
                        IN = 1,
                        NOT_IN = 2
                    }
                }
            }

            /** Properties of a ContainerdConfig. */
            interface IContainerdConfig {

                /** ContainerdConfig privateRegistryAccessConfig */
                privateRegistryAccessConfig?: (google.container.v1.ContainerdConfig.IPrivateRegistryAccessConfig|null);

                /** ContainerdConfig writableCgroups */
                writableCgroups?: (google.container.v1.ContainerdConfig.IWritableCgroups|null);

                /** ContainerdConfig registryHosts */
                registryHosts?: (google.container.v1.ContainerdConfig.IRegistryHostConfig[]|null);
            }

            /** Represents a ContainerdConfig. */
            class ContainerdConfig implements IContainerdConfig {

                /**
                 * Constructs a new ContainerdConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IContainerdConfig);

                /** ContainerdConfig privateRegistryAccessConfig. */
                public privateRegistryAccessConfig?: (google.container.v1.ContainerdConfig.IPrivateRegistryAccessConfig|null);

                /** ContainerdConfig writableCgroups. */
                public writableCgroups?: (google.container.v1.ContainerdConfig.IWritableCgroups|null);

                /** ContainerdConfig registryHosts. */
                public registryHosts: google.container.v1.ContainerdConfig.IRegistryHostConfig[];

                /**
                 * Creates a new ContainerdConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ContainerdConfig instance
                 */
                public static create(properties?: google.container.v1.IContainerdConfig): google.container.v1.ContainerdConfig;

                /**
                 * Encodes the specified ContainerdConfig message. Does not implicitly {@link google.container.v1.ContainerdConfig.verify|verify} messages.
                 * @param message ContainerdConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IContainerdConfig, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a ContainerdConfig message.
                 * @param message Plain 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 ContainerdConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ContainerdConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.ContainerdConfig;

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

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

                /**
                 * Gets the default type url for ContainerdConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace ContainerdConfig {

                /** Properties of a PrivateRegistryAccessConfig. */
                interface IPrivateRegistryAccessConfig {

                    /** PrivateRegistryAccessConfig enabled */
                    enabled?: (boolean|null);

                    /** PrivateRegistryAccessConfig certificateAuthorityDomainConfig */
                    certificateAuthorityDomainConfig?: (google.container.v1.ContainerdConfig.PrivateRegistryAccessConfig.ICertificateAuthorityDomainConfig[]|null);
                }

                /** Represents a PrivateRegistryAccessConfig. */
                class PrivateRegistryAccessConfig implements IPrivateRegistryAccessConfig {

                    /**
                     * Constructs a new PrivateRegistryAccessConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.container.v1.ContainerdConfig.IPrivateRegistryAccessConfig);

                    /** PrivateRegistryAccessConfig enabled. */
                    public enabled: boolean;

                    /** PrivateRegistryAccessConfig certificateAuthorityDomainConfig. */
                    public certificateAuthorityDomainConfig: google.container.v1.ContainerdConfig.PrivateRegistryAccessConfig.ICertificateAuthorityDomainConfig[];

                    /**
                     * Creates a new PrivateRegistryAccessConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PrivateRegistryAccessConfig instance
                     */
                    public static create(properties?: google.container.v1.ContainerdConfig.IPrivateRegistryAccessConfig): google.container.v1.ContainerdConfig.PrivateRegistryAccessConfig;

                    /**
                     * Encodes the specified PrivateRegistryAccessConfig message. Does not implicitly {@link google.container.v1.ContainerdConfig.PrivateRegistryAccessConfig.verify|verify} messages.
                     * @param message PrivateRegistryAccessConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.container.v1.ContainerdConfig.IPrivateRegistryAccessConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PrivateRegistryAccessConfig message, length delimited. Does not implicitly {@link google.container.v1.ContainerdConfig.PrivateRegistryAccessConfig.verify|verify} messages.
                     * @param message PrivateRegistryAccessConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.container.v1.ContainerdConfig.IPrivateRegistryAccessConfig, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

                    /**
                     * Verifies a PrivateRegistryAccessConfig message.
                     * @param message Plain 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 PrivateRegistryAccessConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PrivateRegistryAccessConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.container.v1.ContainerdConfig.PrivateRegistryAccessConfig;

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

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

                    /**
                     * Gets the default type url for PrivateRegistryAccessConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace PrivateRegistryAccessConfig {

                    /** Properties of a CertificateAuthorityDomainConfig. */
                    interface ICertificateAuthorityDomainConfig {

                        /** CertificateAuthorityDomainConfig fqdns */
                        fqdns?: (string[]|null);

                        /** CertificateAuthorityDomainConfig gcpSecretManagerCertificateConfig */
                        gcpSecretManagerCertificateConfig?: (google.container.v1.ContainerdConfig.PrivateRegistryAccessConfig.CertificateAuthorityDomainConfig.IGCPSecretManagerCertificateConfig|null);
                    }

                    /** Represents a CertificateAuthorityDomainConfig. */
                    class CertificateAuthorityDomainConfig implements ICertificateAuthorityDomainConfig {

                        /**
                         * Constructs a new CertificateAuthorityDomainConfig.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.container.v1.ContainerdConfig.PrivateRegistryAccessConfig.ICertificateAuthorityDomainConfig);

                        /** CertificateAuthorityDomainConfig fqdns. */
                        public fqdns: string[];

                        /** CertificateAuthorityDomainConfig gcpSecretManagerCertificateConfig. */
                        public gcpSecretManagerCertificateConfig?: (google.container.v1.ContainerdConfig.PrivateRegistryAccessConfig.CertificateAuthorityDomainConfig.IGCPSecretManagerCertificateConfig|null);

                        /** CertificateAuthorityDomainConfig certificateConfig. */
                        public certificateConfig?: "gcpSecretManagerCertificateConfig";

                        /**
                         * Creates a new CertificateAuthorityDomainConfig instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns CertificateAuthorityDomainConfig instance
                         */
                        public static create(properties?: google.container.v1.ContainerdConfig.PrivateRegistryAccessConfig.ICertificateAuthorityDomainConfig): google.container.v1.ContainerdConfig.PrivateRegistryAccessConfig.CertificateAuthorityDomainConfig;

                        /**
                         * Encodes the specified CertificateAuthorityDomainConfig message. Does not implicitly {@link google.container.v1.ContainerdConfig.PrivateRegistryAccessConfig.CertificateAuthorityDomainConfig.verify|verify} messages.
                         * @param message CertificateAuthorityDomainConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.container.v1.ContainerdConfig.PrivateRegistryAccessConfig.ICertificateAuthorityDomainConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified CertificateAuthorityDomainConfig message, length delimited. Does not implicitly {@link google.container.v1.ContainerdConfig.PrivateRegistryAccessConfig.CertificateAuthorityDomainConfig.verify|verify} messages.
                         * @param message CertificateAuthorityDomainConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.container.v1.ContainerdConfig.PrivateRegistryAccessConfig.ICertificateAuthorityDomainConfig, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

                        /**
                         * Verifies a CertificateAuthorityDomainConfig message.
                         * @param message Plain 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 CertificateAuthorityDomainConfig message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns CertificateAuthorityDomainConfig
                         */
                        public static fromObject(object: { [k: string]: any }): google.container.v1.ContainerdConfig.PrivateRegistryAccessConfig.CertificateAuthorityDomainConfig;

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

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

                        /**
                         * Gets the default type url for CertificateAuthorityDomainConfig
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    namespace CertificateAuthorityDomainConfig {

                        /** Properties of a GCPSecretManagerCertificateConfig. */
                        interface IGCPSecretManagerCertificateConfig {

                            /** GCPSecretManagerCertificateConfig secretUri */
                            secretUri?: (string|null);
                        }

                        /** Represents a GCPSecretManagerCertificateConfig. */
                        class GCPSecretManagerCertificateConfig implements IGCPSecretManagerCertificateConfig {

                            /**
                             * Constructs a new GCPSecretManagerCertificateConfig.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.container.v1.ContainerdConfig.PrivateRegistryAccessConfig.CertificateAuthorityDomainConfig.IGCPSecretManagerCertificateConfig);

                            /** GCPSecretManagerCertificateConfig secretUri. */
                            public secretUri: string;

                            /**
                             * Creates a new GCPSecretManagerCertificateConfig instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns GCPSecretManagerCertificateConfig instance
                             */
                            public static create(properties?: google.container.v1.ContainerdConfig.PrivateRegistryAccessConfig.CertificateAuthorityDomainConfig.IGCPSecretManagerCertificateConfig): google.container.v1.ContainerdConfig.PrivateRegistryAccessConfig.CertificateAuthorityDomainConfig.GCPSecretManagerCertificateConfig;

                            /**
                             * Encodes the specified GCPSecretManagerCertificateConfig message. Does not implicitly {@link google.container.v1.ContainerdConfig.PrivateRegistryAccessConfig.CertificateAuthorityDomainConfig.GCPSecretManagerCertificateConfig.verify|verify} messages.
                             * @param message GCPSecretManagerCertificateConfig message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.container.v1.ContainerdConfig.PrivateRegistryAccessConfig.CertificateAuthorityDomainConfig.IGCPSecretManagerCertificateConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified GCPSecretManagerCertificateConfig message, length delimited. Does not implicitly {@link google.container.v1.ContainerdConfig.PrivateRegistryAccessConfig.CertificateAuthorityDomainConfig.GCPSecretManagerCertificateConfig.verify|verify} messages.
                             * @param message GCPSecretManagerCertificateConfig message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.container.v1.ContainerdConfig.PrivateRegistryAccessConfig.CertificateAuthorityDomainConfig.IGCPSecretManagerCertificateConfig, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

                            /**
                             * Verifies a GCPSecretManagerCertificateConfig message.
                             * @param message Plain 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 GCPSecretManagerCertificateConfig message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns GCPSecretManagerCertificateConfig
                             */
                            public static fromObject(object: { [k: string]: any }): google.container.v1.ContainerdConfig.PrivateRegistryAccessConfig.CertificateAuthorityDomainConfig.GCPSecretManagerCertificateConfig;

                            /**
                             * Creates a plain object from a GCPSecretManagerCertificateConfig message. Also converts values to other types if specified.
                             * @param message GCPSecretManagerCertificateConfig
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.container.v1.ContainerdConfig.PrivateRegistryAccessConfig.CertificateAuthorityDomainConfig.GCPSecretManagerCertificateConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

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

                            /**
                             * Gets the default type url for GCPSecretManagerCertificateConfig
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }
                    }
                }

                /** Properties of a WritableCgroups. */
                interface IWritableCgroups {

                    /** WritableCgroups enabled */
                    enabled?: (boolean|null);
                }

                /** Represents a WritableCgroups. */
                class WritableCgroups implements IWritableCgroups {

                    /**
                     * Constructs a new WritableCgroups.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.container.v1.ContainerdConfig.IWritableCgroups);

                    /** WritableCgroups enabled. */
                    public enabled: boolean;

                    /**
                     * Creates a new WritableCgroups instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns WritableCgroups instance
                     */
                    public static create(properties?: google.container.v1.ContainerdConfig.IWritableCgroups): google.container.v1.ContainerdConfig.WritableCgroups;

                    /**
                     * Encodes the specified WritableCgroups message. Does not implicitly {@link google.container.v1.ContainerdConfig.WritableCgroups.verify|verify} messages.
                     * @param message WritableCgroups message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.container.v1.ContainerdConfig.IWritableCgroups, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified WritableCgroups message, length delimited. Does not implicitly {@link google.container.v1.ContainerdConfig.WritableCgroups.verify|verify} messages.
                     * @param message WritableCgroups message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.container.v1.ContainerdConfig.IWritableCgroups, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

                    /**
                     * Verifies a WritableCgroups message.
                     * @param message Plain 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 WritableCgroups message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns WritableCgroups
                     */
                    public static fromObject(object: { [k: string]: any }): google.container.v1.ContainerdConfig.WritableCgroups;

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

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

                    /**
                     * Gets the default type url for WritableCgroups
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RegistryHostConfig. */
                interface IRegistryHostConfig {

                    /** RegistryHostConfig server */
                    server?: (string|null);

                    /** RegistryHostConfig hosts */
                    hosts?: (google.container.v1.ContainerdConfig.RegistryHostConfig.IHostConfig[]|null);
                }

                /** Represents a RegistryHostConfig. */
                class RegistryHostConfig implements IRegistryHostConfig {

                    /**
                     * Constructs a new RegistryHostConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.container.v1.ContainerdConfig.IRegistryHostConfig);

                    /** RegistryHostConfig server. */
                    public server: string;

                    /** RegistryHostConfig hosts. */
                    public hosts: google.container.v1.ContainerdConfig.RegistryHostConfig.IHostConfig[];

                    /**
                     * Creates a new RegistryHostConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RegistryHostConfig instance
                     */
                    public static create(properties?: google.container.v1.ContainerdConfig.IRegistryHostConfig): google.container.v1.ContainerdConfig.RegistryHostConfig;

                    /**
                     * Encodes the specified RegistryHostConfig message. Does not implicitly {@link google.container.v1.ContainerdConfig.RegistryHostConfig.verify|verify} messages.
                     * @param message RegistryHostConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.container.v1.ContainerdConfig.IRegistryHostConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RegistryHostConfig message, length delimited. Does not implicitly {@link google.container.v1.ContainerdConfig.RegistryHostConfig.verify|verify} messages.
                     * @param message RegistryHostConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.container.v1.ContainerdConfig.IRegistryHostConfig, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

                    /**
                     * Verifies a RegistryHostConfig message.
                     * @param message Plain 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 RegistryHostConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RegistryHostConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.container.v1.ContainerdConfig.RegistryHostConfig;

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

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

                    /**
                     * Gets the default type url for RegistryHostConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace RegistryHostConfig {

                    /** Properties of a CertificateConfig. */
                    interface ICertificateConfig {

                        /** CertificateConfig gcpSecretManagerSecretUri */
                        gcpSecretManagerSecretUri?: (string|null);
                    }

                    /** Represents a CertificateConfig. */
                    class CertificateConfig implements ICertificateConfig {

                        /**
                         * Constructs a new CertificateConfig.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.container.v1.ContainerdConfig.RegistryHostConfig.ICertificateConfig);

                        /** CertificateConfig gcpSecretManagerSecretUri. */
                        public gcpSecretManagerSecretUri?: (string|null);

                        /** CertificateConfig certificate. */
                        public certificate?: "gcpSecretManagerSecretUri";

                        /**
                         * Creates a new CertificateConfig instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns CertificateConfig instance
                         */
                        public static create(properties?: google.container.v1.ContainerdConfig.RegistryHostConfig.ICertificateConfig): google.container.v1.ContainerdConfig.RegistryHostConfig.CertificateConfig;

                        /**
                         * Encodes the specified CertificateConfig message. Does not implicitly {@link google.container.v1.ContainerdConfig.RegistryHostConfig.CertificateConfig.verify|verify} messages.
                         * @param message CertificateConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.container.v1.ContainerdConfig.RegistryHostConfig.ICertificateConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified CertificateConfig message, length delimited. Does not implicitly {@link google.container.v1.ContainerdConfig.RegistryHostConfig.CertificateConfig.verify|verify} messages.
                         * @param message CertificateConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.container.v1.ContainerdConfig.RegistryHostConfig.ICertificateConfig, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

                        /**
                         * Verifies a CertificateConfig message.
                         * @param message Plain 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 CertificateConfig message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns CertificateConfig
                         */
                        public static fromObject(object: { [k: string]: any }): google.container.v1.ContainerdConfig.RegistryHostConfig.CertificateConfig;

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

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

                        /**
                         * Gets the default type url for CertificateConfig
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of a CertificateConfigPair. */
                    interface ICertificateConfigPair {

                        /** CertificateConfigPair cert */
                        cert?: (google.container.v1.ContainerdConfig.RegistryHostConfig.ICertificateConfig|null);

                        /** CertificateConfigPair key */
                        key?: (google.container.v1.ContainerdConfig.RegistryHostConfig.ICertificateConfig|null);
                    }

                    /** Represents a CertificateConfigPair. */
                    class CertificateConfigPair implements ICertificateConfigPair {

                        /**
                         * Constructs a new CertificateConfigPair.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.container.v1.ContainerdConfig.RegistryHostConfig.ICertificateConfigPair);

                        /** CertificateConfigPair cert. */
                        public cert?: (google.container.v1.ContainerdConfig.RegistryHostConfig.ICertificateConfig|null);

                        /** CertificateConfigPair key. */
                        public key?: (google.container.v1.ContainerdConfig.RegistryHostConfig.ICertificateConfig|null);

                        /**
                         * Creates a new CertificateConfigPair instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns CertificateConfigPair instance
                         */
                        public static create(properties?: google.container.v1.ContainerdConfig.RegistryHostConfig.ICertificateConfigPair): google.container.v1.ContainerdConfig.RegistryHostConfig.CertificateConfigPair;

                        /**
                         * Encodes the specified CertificateConfigPair message. Does not implicitly {@link google.container.v1.ContainerdConfig.RegistryHostConfig.CertificateConfigPair.verify|verify} messages.
                         * @param message CertificateConfigPair message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.container.v1.ContainerdConfig.RegistryHostConfig.ICertificateConfigPair, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified CertificateConfigPair message, length delimited. Does not implicitly {@link google.container.v1.ContainerdConfig.RegistryHostConfig.CertificateConfigPair.verify|verify} messages.
                         * @param message CertificateConfigPair message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.container.v1.ContainerdConfig.RegistryHostConfig.ICertificateConfigPair, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

                        /**
                         * Verifies a CertificateConfigPair message.
                         * @param message Plain 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 CertificateConfigPair message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns CertificateConfigPair
                         */
                        public static fromObject(object: { [k: string]: any }): google.container.v1.ContainerdConfig.RegistryHostConfig.CertificateConfigPair;

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

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

                        /**
                         * Gets the default type url for CertificateConfigPair
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of a RegistryHeader. */
                    interface IRegistryHeader {

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

                        /** RegistryHeader value */
                        value?: (string[]|null);
                    }

                    /** Represents a RegistryHeader. */
                    class RegistryHeader implements IRegistryHeader {

                        /**
                         * Constructs a new RegistryHeader.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.container.v1.ContainerdConfig.RegistryHostConfig.IRegistryHeader);

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

                        /** RegistryHeader value. */
                        public value: string[];

                        /**
                         * Creates a new RegistryHeader instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns RegistryHeader instance
                         */
                        public static create(properties?: google.container.v1.ContainerdConfig.RegistryHostConfig.IRegistryHeader): google.container.v1.ContainerdConfig.RegistryHostConfig.RegistryHeader;

                        /**
                         * Encodes the specified RegistryHeader message. Does not implicitly {@link google.container.v1.ContainerdConfig.RegistryHostConfig.RegistryHeader.verify|verify} messages.
                         * @param message RegistryHeader message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.container.v1.ContainerdConfig.RegistryHostConfig.IRegistryHeader, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified RegistryHeader message, length delimited. Does not implicitly {@link google.container.v1.ContainerdConfig.RegistryHostConfig.RegistryHeader.verify|verify} messages.
                         * @param message RegistryHeader message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.container.v1.ContainerdConfig.RegistryHostConfig.IRegistryHeader, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

                        /**
                         * Verifies a RegistryHeader message.
                         * @param message Plain 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 RegistryHeader message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns RegistryHeader
                         */
                        public static fromObject(object: { [k: string]: any }): google.container.v1.ContainerdConfig.RegistryHostConfig.RegistryHeader;

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

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

                        /**
                         * Gets the default type url for RegistryHeader
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** HostCapability enum. */
                    enum HostCapability {
                        HOST_CAPABILITY_UNSPECIFIED = 0,
                        HOST_CAPABILITY_PULL = 1,
                        HOST_CAPABILITY_RESOLVE = 2,
                        HOST_CAPABILITY_PUSH = 3
                    }

                    /** Properties of a HostConfig. */
                    interface IHostConfig {

                        /** HostConfig host */
                        host?: (string|null);

                        /** HostConfig capabilities */
                        capabilities?: (google.container.v1.ContainerdConfig.RegistryHostConfig.HostCapability[]|null);

                        /** HostConfig overridePath */
                        overridePath?: (boolean|null);

                        /** HostConfig header */
                        header?: (google.container.v1.ContainerdConfig.RegistryHostConfig.IRegistryHeader[]|null);

                        /** HostConfig ca */
                        ca?: (google.container.v1.ContainerdConfig.RegistryHostConfig.ICertificateConfig[]|null);

                        /** HostConfig client */
                        client?: (google.container.v1.ContainerdConfig.RegistryHostConfig.ICertificateConfigPair[]|null);

                        /** HostConfig dialTimeout */
                        dialTimeout?: (google.protobuf.IDuration|null);
                    }

                    /** Represents a HostConfig. */
                    class HostConfig implements IHostConfig {

                        /**
                         * Constructs a new HostConfig.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.container.v1.ContainerdConfig.RegistryHostConfig.IHostConfig);

                        /** HostConfig host. */
                        public host: string;

                        /** HostConfig capabilities. */
                        public capabilities: google.container.v1.ContainerdConfig.RegistryHostConfig.HostCapability[];

                        /** HostConfig overridePath. */
                        public overridePath: boolean;

                        /** HostConfig header. */
                        public header: google.container.v1.ContainerdConfig.RegistryHostConfig.IRegistryHeader[];

                        /** HostConfig ca. */
                        public ca: google.container.v1.ContainerdConfig.RegistryHostConfig.ICertificateConfig[];

                        /** HostConfig client. */
                        public client: google.container.v1.ContainerdConfig.RegistryHostConfig.ICertificateConfigPair[];

                        /** HostConfig dialTimeout. */
                        public dialTimeout?: (google.protobuf.IDuration|null);

                        /**
                         * Creates a new HostConfig instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns HostConfig instance
                         */
                        public static create(properties?: google.container.v1.ContainerdConfig.RegistryHostConfig.IHostConfig): google.container.v1.ContainerdConfig.RegistryHostConfig.HostConfig;

                        /**
                         * Encodes the specified HostConfig message. Does not implicitly {@link google.container.v1.ContainerdConfig.RegistryHostConfig.HostConfig.verify|verify} messages.
                         * @param message HostConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.container.v1.ContainerdConfig.RegistryHostConfig.IHostConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified HostConfig message, length delimited. Does not implicitly {@link google.container.v1.ContainerdConfig.RegistryHostConfig.HostConfig.verify|verify} messages.
                         * @param message HostConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.container.v1.ContainerdConfig.RegistryHostConfig.IHostConfig, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

                        /**
                         * Verifies a HostConfig message.
                         * @param message Plain 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 HostConfig message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns HostConfig
                         */
                        public static fromObject(object: { [k: string]: any }): google.container.v1.ContainerdConfig.RegistryHostConfig.HostConfig;

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

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

                        /**
                         * Gets the default type url for HostConfig
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }
                }
            }

            /** Properties of a NodeTaint. */
            interface INodeTaint {

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

                /** NodeTaint value */
                value?: (string|null);

                /** NodeTaint effect */
                effect?: (google.container.v1.NodeTaint.Effect|keyof typeof google.container.v1.NodeTaint.Effect|null);
            }

            /** Represents a NodeTaint. */
            class NodeTaint implements INodeTaint {

                /**
                 * Constructs a new NodeTaint.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.INodeTaint);

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

                /** NodeTaint value. */
                public value: string;

                /** NodeTaint effect. */
                public effect: (google.container.v1.NodeTaint.Effect|keyof typeof google.container.v1.NodeTaint.Effect);

                /**
                 * Creates a new NodeTaint instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns NodeTaint instance
                 */
                public static create(properties?: google.container.v1.INodeTaint): google.container.v1.NodeTaint;

                /**
                 * Encodes the specified NodeTaint message. Does not implicitly {@link google.container.v1.NodeTaint.verify|verify} messages.
                 * @param message NodeTaint message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.INodeTaint, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a NodeTaint message.
                 * @param message Plain 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 NodeTaint message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns NodeTaint
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.NodeTaint;

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

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

                /**
                 * Gets the default type url for NodeTaint
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace NodeTaint {

                /** Effect enum. */
                enum Effect {
                    EFFECT_UNSPECIFIED = 0,
                    NO_SCHEDULE = 1,
                    PREFER_NO_SCHEDULE = 2,
                    NO_EXECUTE = 3
                }
            }

            /** Properties of a NodeTaints. */
            interface INodeTaints {

                /** NodeTaints taints */
                taints?: (google.container.v1.INodeTaint[]|null);
            }

            /** Represents a NodeTaints. */
            class NodeTaints implements INodeTaints {

                /**
                 * Constructs a new NodeTaints.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.INodeTaints);

                /** NodeTaints taints. */
                public taints: google.container.v1.INodeTaint[];

                /**
                 * Creates a new NodeTaints instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns NodeTaints instance
                 */
                public static create(properties?: google.container.v1.INodeTaints): google.container.v1.NodeTaints;

                /**
                 * Encodes the specified NodeTaints message. Does not implicitly {@link google.container.v1.NodeTaints.verify|verify} messages.
                 * @param message NodeTaints message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.INodeTaints, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a NodeTaints message.
                 * @param message Plain 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 NodeTaints message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns NodeTaints
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.NodeTaints;

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

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

                /**
                 * Gets the default type url for NodeTaints
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a NodeLabels. */
            interface INodeLabels {

                /** NodeLabels labels */
                labels?: ({ [k: string]: string }|null);
            }

            /** Represents a NodeLabels. */
            class NodeLabels implements INodeLabels {

                /**
                 * Constructs a new NodeLabels.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.INodeLabels);

                /** NodeLabels labels. */
                public labels: { [k: string]: string };

                /**
                 * Creates a new NodeLabels instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns NodeLabels instance
                 */
                public static create(properties?: google.container.v1.INodeLabels): google.container.v1.NodeLabels;

                /**
                 * Encodes the specified NodeLabels message. Does not implicitly {@link google.container.v1.NodeLabels.verify|verify} messages.
                 * @param message NodeLabels message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.INodeLabels, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a NodeLabels message.
                 * @param message Plain 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 NodeLabels message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns NodeLabels
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.NodeLabels;

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

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

                /**
                 * Gets the default type url for NodeLabels
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a ResourceLabels. */
            interface IResourceLabels {

                /** ResourceLabels labels */
                labels?: ({ [k: string]: string }|null);
            }

            /** Represents a ResourceLabels. */
            class ResourceLabels implements IResourceLabels {

                /**
                 * Constructs a new ResourceLabels.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IResourceLabels);

                /** ResourceLabels labels. */
                public labels: { [k: string]: string };

                /**
                 * Creates a new ResourceLabels instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ResourceLabels instance
                 */
                public static create(properties?: google.container.v1.IResourceLabels): google.container.v1.ResourceLabels;

                /**
                 * Encodes the specified ResourceLabels message. Does not implicitly {@link google.container.v1.ResourceLabels.verify|verify} messages.
                 * @param message ResourceLabels message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IResourceLabels, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a ResourceLabels message.
                 * @param message Plain 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 ResourceLabels message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ResourceLabels
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.ResourceLabels;

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

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

                /**
                 * Gets the default type url for ResourceLabels
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a NetworkTags. */
            interface INetworkTags {

                /** NetworkTags tags */
                tags?: (string[]|null);
            }

            /** Represents a NetworkTags. */
            class NetworkTags implements INetworkTags {

                /**
                 * Constructs a new NetworkTags.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.INetworkTags);

                /** NetworkTags tags. */
                public tags: string[];

                /**
                 * Creates a new NetworkTags instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns NetworkTags instance
                 */
                public static create(properties?: google.container.v1.INetworkTags): google.container.v1.NetworkTags;

                /**
                 * Encodes the specified NetworkTags message. Does not implicitly {@link google.container.v1.NetworkTags.verify|verify} messages.
                 * @param message NetworkTags message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.INetworkTags, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a NetworkTags message.
                 * @param message Plain 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 NetworkTags message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns NetworkTags
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.NetworkTags;

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

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

                /**
                 * Gets the default type url for NetworkTags
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a MasterAuth. */
            interface IMasterAuth {

                /** MasterAuth username */
                username?: (string|null);

                /** MasterAuth password */
                password?: (string|null);

                /** MasterAuth clientCertificateConfig */
                clientCertificateConfig?: (google.container.v1.IClientCertificateConfig|null);

                /** MasterAuth clusterCaCertificate */
                clusterCaCertificate?: (string|null);

                /** MasterAuth clientCertificate */
                clientCertificate?: (string|null);

                /** MasterAuth clientKey */
                clientKey?: (string|null);
            }

            /** Represents a MasterAuth. */
            class MasterAuth implements IMasterAuth {

                /**
                 * Constructs a new MasterAuth.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IMasterAuth);

                /** MasterAuth username. */
                public username: string;

                /** MasterAuth password. */
                public password: string;

                /** MasterAuth clientCertificateConfig. */
                public clientCertificateConfig?: (google.container.v1.IClientCertificateConfig|null);

                /** MasterAuth clusterCaCertificate. */
                public clusterCaCertificate: string;

                /** MasterAuth clientCertificate. */
                public clientCertificate: string;

                /** MasterAuth clientKey. */
                public clientKey: string;

                /**
                 * Creates a new MasterAuth instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns MasterAuth instance
                 */
                public static create(properties?: google.container.v1.IMasterAuth): google.container.v1.MasterAuth;

                /**
                 * Encodes the specified MasterAuth message. Does not implicitly {@link google.container.v1.MasterAuth.verify|verify} messages.
                 * @param message MasterAuth message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IMasterAuth, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a MasterAuth message.
                 * @param message Plain 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 MasterAuth message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns MasterAuth
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.MasterAuth;

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

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

                /**
                 * Gets the default type url for MasterAuth
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a ClientCertificateConfig. */
            interface IClientCertificateConfig {

                /** ClientCertificateConfig issueClientCertificate */
                issueClientCertificate?: (boolean|null);
            }

            /** Represents a ClientCertificateConfig. */
            class ClientCertificateConfig implements IClientCertificateConfig {

                /**
                 * Constructs a new ClientCertificateConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IClientCertificateConfig);

                /** ClientCertificateConfig issueClientCertificate. */
                public issueClientCertificate: boolean;

                /**
                 * Creates a new ClientCertificateConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ClientCertificateConfig instance
                 */
                public static create(properties?: google.container.v1.IClientCertificateConfig): google.container.v1.ClientCertificateConfig;

                /**
                 * Encodes the specified ClientCertificateConfig message. Does not implicitly {@link google.container.v1.ClientCertificateConfig.verify|verify} messages.
                 * @param message ClientCertificateConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IClientCertificateConfig, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a ClientCertificateConfig message.
                 * @param message Plain 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 ClientCertificateConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ClientCertificateConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.ClientCertificateConfig;

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

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

                /**
                 * Gets the default type url for ClientCertificateConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of an AddonsConfig. */
            interface IAddonsConfig {

                /** AddonsConfig httpLoadBalancing */
                httpLoadBalancing?: (google.container.v1.IHttpLoadBalancing|null);

                /** AddonsConfig horizontalPodAutoscaling */
                horizontalPodAutoscaling?: (google.container.v1.IHorizontalPodAutoscaling|null);

                /** AddonsConfig kubernetesDashboard */
                kubernetesDashboard?: (google.container.v1.IKubernetesDashboard|null);

                /** AddonsConfig networkPolicyConfig */
                networkPolicyConfig?: (google.container.v1.INetworkPolicyConfig|null);

                /** AddonsConfig cloudRunConfig */
                cloudRunConfig?: (google.container.v1.ICloudRunConfig|null);

                /** AddonsConfig dnsCacheConfig */
                dnsCacheConfig?: (google.container.v1.IDnsCacheConfig|null);

                /** AddonsConfig configConnectorConfig */
                configConnectorConfig?: (google.container.v1.IConfigConnectorConfig|null);

                /** AddonsConfig gcePersistentDiskCsiDriverConfig */
                gcePersistentDiskCsiDriverConfig?: (google.container.v1.IGcePersistentDiskCsiDriverConfig|null);

                /** AddonsConfig gcpFilestoreCsiDriverConfig */
                gcpFilestoreCsiDriverConfig?: (google.container.v1.IGcpFilestoreCsiDriverConfig|null);

                /** AddonsConfig gkeBackupAgentConfig */
                gkeBackupAgentConfig?: (google.container.v1.IGkeBackupAgentConfig|null);

                /** AddonsConfig gcsFuseCsiDriverConfig */
                gcsFuseCsiDriverConfig?: (google.container.v1.IGcsFuseCsiDriverConfig|null);

                /** AddonsConfig statefulHaConfig */
                statefulHaConfig?: (google.container.v1.IStatefulHAConfig|null);

                /** AddonsConfig parallelstoreCsiDriverConfig */
                parallelstoreCsiDriverConfig?: (google.container.v1.IParallelstoreCsiDriverConfig|null);

                /** AddonsConfig rayOperatorConfig */
                rayOperatorConfig?: (google.container.v1.IRayOperatorConfig|null);

                /** AddonsConfig highScaleCheckpointingConfig */
                highScaleCheckpointingConfig?: (google.container.v1.IHighScaleCheckpointingConfig|null);

                /** AddonsConfig lustreCsiDriverConfig */
                lustreCsiDriverConfig?: (google.container.v1.ILustreCsiDriverConfig|null);

                /** AddonsConfig podSnapshotConfig */
                podSnapshotConfig?: (google.container.v1.IPodSnapshotConfig|null);

                /** AddonsConfig slurmOperatorConfig */
                slurmOperatorConfig?: (google.container.v1.ISlurmOperatorConfig|null);

                /** AddonsConfig sliceControllerConfig */
                sliceControllerConfig?: (google.container.v1.ISliceControllerConfig|null);

                /** AddonsConfig nodeReadinessConfig */
                nodeReadinessConfig?: (google.container.v1.INodeReadinessConfig|null);
            }

            /** Represents an AddonsConfig. */
            class AddonsConfig implements IAddonsConfig {

                /**
                 * Constructs a new AddonsConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IAddonsConfig);

                /** AddonsConfig httpLoadBalancing. */
                public httpLoadBalancing?: (google.container.v1.IHttpLoadBalancing|null);

                /** AddonsConfig horizontalPodAutoscaling. */
                public horizontalPodAutoscaling?: (google.container.v1.IHorizontalPodAutoscaling|null);

                /** AddonsConfig kubernetesDashboard. */
                public kubernetesDashboard?: (google.container.v1.IKubernetesDashboard|null);

                /** AddonsConfig networkPolicyConfig. */
                public networkPolicyConfig?: (google.container.v1.INetworkPolicyConfig|null);

                /** AddonsConfig cloudRunConfig. */
                public cloudRunConfig?: (google.container.v1.ICloudRunConfig|null);

                /** AddonsConfig dnsCacheConfig. */
                public dnsCacheConfig?: (google.container.v1.IDnsCacheConfig|null);

                /** AddonsConfig configConnectorConfig. */
                public configConnectorConfig?: (google.container.v1.IConfigConnectorConfig|null);

                /** AddonsConfig gcePersistentDiskCsiDriverConfig. */
                public gcePersistentDiskCsiDriverConfig?: (google.container.v1.IGcePersistentDiskCsiDriverConfig|null);

                /** AddonsConfig gcpFilestoreCsiDriverConfig. */
                public gcpFilestoreCsiDriverConfig?: (google.container.v1.IGcpFilestoreCsiDriverConfig|null);

                /** AddonsConfig gkeBackupAgentConfig. */
                public gkeBackupAgentConfig?: (google.container.v1.IGkeBackupAgentConfig|null);

                /** AddonsConfig gcsFuseCsiDriverConfig. */
                public gcsFuseCsiDriverConfig?: (google.container.v1.IGcsFuseCsiDriverConfig|null);

                /** AddonsConfig statefulHaConfig. */
                public statefulHaConfig?: (google.container.v1.IStatefulHAConfig|null);

                /** AddonsConfig parallelstoreCsiDriverConfig. */
                public parallelstoreCsiDriverConfig?: (google.container.v1.IParallelstoreCsiDriverConfig|null);

                /** AddonsConfig rayOperatorConfig. */
                public rayOperatorConfig?: (google.container.v1.IRayOperatorConfig|null);

                /** AddonsConfig highScaleCheckpointingConfig. */
                public highScaleCheckpointingConfig?: (google.container.v1.IHighScaleCheckpointingConfig|null);

                /** AddonsConfig lustreCsiDriverConfig. */
                public lustreCsiDriverConfig?: (google.container.v1.ILustreCsiDriverConfig|null);

                /** AddonsConfig podSnapshotConfig. */
                public podSnapshotConfig?: (google.container.v1.IPodSnapshotConfig|null);

                /** AddonsConfig slurmOperatorConfig. */
                public slurmOperatorConfig?: (google.container.v1.ISlurmOperatorConfig|null);

                /** AddonsConfig sliceControllerConfig. */
                public sliceControllerConfig?: (google.container.v1.ISliceControllerConfig|null);

                /** AddonsConfig nodeReadinessConfig. */
                public nodeReadinessConfig?: (google.container.v1.INodeReadinessConfig|null);

                /**
                 * Creates a new AddonsConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns AddonsConfig instance
                 */
                public static create(properties?: google.container.v1.IAddonsConfig): google.container.v1.AddonsConfig;

                /**
                 * Encodes the specified AddonsConfig message. Does not implicitly {@link google.container.v1.AddonsConfig.verify|verify} messages.
                 * @param message AddonsConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IAddonsConfig, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies an AddonsConfig message.
                 * @param message Plain 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 AddonsConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns AddonsConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.AddonsConfig;

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

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

                /**
                 * Gets the default type url for AddonsConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a HttpLoadBalancing. */
            interface IHttpLoadBalancing {

                /** HttpLoadBalancing disabled */
                disabled?: (boolean|null);
            }

            /** Represents a HttpLoadBalancing. */
            class HttpLoadBalancing implements IHttpLoadBalancing {

                /**
                 * Constructs a new HttpLoadBalancing.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IHttpLoadBalancing);

                /** HttpLoadBalancing disabled. */
                public disabled: boolean;

                /**
                 * Creates a new HttpLoadBalancing instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns HttpLoadBalancing instance
                 */
                public static create(properties?: google.container.v1.IHttpLoadBalancing): google.container.v1.HttpLoadBalancing;

                /**
                 * Encodes the specified HttpLoadBalancing message. Does not implicitly {@link google.container.v1.HttpLoadBalancing.verify|verify} messages.
                 * @param message HttpLoadBalancing message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IHttpLoadBalancing, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a HttpLoadBalancing message.
                 * @param message Plain 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 HttpLoadBalancing message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns HttpLoadBalancing
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.HttpLoadBalancing;

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

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

                /**
                 * Gets the default type url for HttpLoadBalancing
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a HorizontalPodAutoscaling. */
            interface IHorizontalPodAutoscaling {

                /** HorizontalPodAutoscaling disabled */
                disabled?: (boolean|null);
            }

            /** Represents a HorizontalPodAutoscaling. */
            class HorizontalPodAutoscaling implements IHorizontalPodAutoscaling {

                /**
                 * Constructs a new HorizontalPodAutoscaling.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IHorizontalPodAutoscaling);

                /** HorizontalPodAutoscaling disabled. */
                public disabled: boolean;

                /**
                 * Creates a new HorizontalPodAutoscaling instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns HorizontalPodAutoscaling instance
                 */
                public static create(properties?: google.container.v1.IHorizontalPodAutoscaling): google.container.v1.HorizontalPodAutoscaling;

                /**
                 * Encodes the specified HorizontalPodAutoscaling message. Does not implicitly {@link google.container.v1.HorizontalPodAutoscaling.verify|verify} messages.
                 * @param message HorizontalPodAutoscaling message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IHorizontalPodAutoscaling, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a HorizontalPodAutoscaling message.
                 * @param message Plain 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 HorizontalPodAutoscaling message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns HorizontalPodAutoscaling
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.HorizontalPodAutoscaling;

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

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

                /**
                 * Gets the default type url for HorizontalPodAutoscaling
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a KubernetesDashboard. */
            interface IKubernetesDashboard {

                /** KubernetesDashboard disabled */
                disabled?: (boolean|null);
            }

            /** Represents a KubernetesDashboard. */
            class KubernetesDashboard implements IKubernetesDashboard {

                /**
                 * Constructs a new KubernetesDashboard.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IKubernetesDashboard);

                /** KubernetesDashboard disabled. */
                public disabled: boolean;

                /**
                 * Creates a new KubernetesDashboard instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns KubernetesDashboard instance
                 */
                public static create(properties?: google.container.v1.IKubernetesDashboard): google.container.v1.KubernetesDashboard;

                /**
                 * Encodes the specified KubernetesDashboard message. Does not implicitly {@link google.container.v1.KubernetesDashboard.verify|verify} messages.
                 * @param message KubernetesDashboard message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IKubernetesDashboard, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a KubernetesDashboard message.
                 * @param message Plain 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 KubernetesDashboard message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns KubernetesDashboard
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.KubernetesDashboard;

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

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

                /**
                 * Gets the default type url for KubernetesDashboard
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a NetworkPolicyConfig. */
            interface INetworkPolicyConfig {

                /** NetworkPolicyConfig disabled */
                disabled?: (boolean|null);
            }

            /** Represents a NetworkPolicyConfig. */
            class NetworkPolicyConfig implements INetworkPolicyConfig {

                /**
                 * Constructs a new NetworkPolicyConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.INetworkPolicyConfig);

                /** NetworkPolicyConfig disabled. */
                public disabled: boolean;

                /**
                 * Creates a new NetworkPolicyConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns NetworkPolicyConfig instance
                 */
                public static create(properties?: google.container.v1.INetworkPolicyConfig): google.container.v1.NetworkPolicyConfig;

                /**
                 * Encodes the specified NetworkPolicyConfig message. Does not implicitly {@link google.container.v1.NetworkPolicyConfig.verify|verify} messages.
                 * @param message NetworkPolicyConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.INetworkPolicyConfig, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a NetworkPolicyConfig message.
                 * @param message Plain 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 NetworkPolicyConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns NetworkPolicyConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.NetworkPolicyConfig;

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

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

                /**
                 * Gets the default type url for NetworkPolicyConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a DnsCacheConfig. */
            interface IDnsCacheConfig {

                /** DnsCacheConfig enabled */
                enabled?: (boolean|null);
            }

            /** Represents a DnsCacheConfig. */
            class DnsCacheConfig implements IDnsCacheConfig {

                /**
                 * Constructs a new DnsCacheConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IDnsCacheConfig);

                /** DnsCacheConfig enabled. */
                public enabled: boolean;

                /**
                 * Creates a new DnsCacheConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns DnsCacheConfig instance
                 */
                public static create(properties?: google.container.v1.IDnsCacheConfig): google.container.v1.DnsCacheConfig;

                /**
                 * Encodes the specified DnsCacheConfig message. Does not implicitly {@link google.container.v1.DnsCacheConfig.verify|verify} messages.
                 * @param message DnsCacheConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IDnsCacheConfig, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a DnsCacheConfig message.
                 * @param message Plain 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 DnsCacheConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns DnsCacheConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.DnsCacheConfig;

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

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

                /**
                 * Gets the default type url for DnsCacheConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a PrivateClusterMasterGlobalAccessConfig. */
            interface IPrivateClusterMasterGlobalAccessConfig {

                /** PrivateClusterMasterGlobalAccessConfig enabled */
                enabled?: (boolean|null);
            }

            /** Represents a PrivateClusterMasterGlobalAccessConfig. */
            class PrivateClusterMasterGlobalAccessConfig implements IPrivateClusterMasterGlobalAccessConfig {

                /**
                 * Constructs a new PrivateClusterMasterGlobalAccessConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IPrivateClusterMasterGlobalAccessConfig);

                /** PrivateClusterMasterGlobalAccessConfig enabled. */
                public enabled: boolean;

                /**
                 * Creates a new PrivateClusterMasterGlobalAccessConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns PrivateClusterMasterGlobalAccessConfig instance
                 */
                public static create(properties?: google.container.v1.IPrivateClusterMasterGlobalAccessConfig): google.container.v1.PrivateClusterMasterGlobalAccessConfig;

                /**
                 * Encodes the specified PrivateClusterMasterGlobalAccessConfig message. Does not implicitly {@link google.container.v1.PrivateClusterMasterGlobalAccessConfig.verify|verify} messages.
                 * @param message PrivateClusterMasterGlobalAccessConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IPrivateClusterMasterGlobalAccessConfig, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a PrivateClusterMasterGlobalAccessConfig message.
                 * @param message Plain 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 PrivateClusterMasterGlobalAccessConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns PrivateClusterMasterGlobalAccessConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.PrivateClusterMasterGlobalAccessConfig;

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

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

                /**
                 * Gets the default type url for PrivateClusterMasterGlobalAccessConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a PrivateClusterConfig. */
            interface IPrivateClusterConfig {

                /** PrivateClusterConfig enablePrivateNodes */
                enablePrivateNodes?: (boolean|null);

                /** PrivateClusterConfig enablePrivateEndpoint */
                enablePrivateEndpoint?: (boolean|null);

                /** PrivateClusterConfig masterIpv4CidrBlock */
                masterIpv4CidrBlock?: (string|null);

                /** PrivateClusterConfig privateEndpoint */
                privateEndpoint?: (string|null);

                /** PrivateClusterConfig publicEndpoint */
                publicEndpoint?: (string|null);

                /** PrivateClusterConfig peeringName */
                peeringName?: (string|null);

                /** PrivateClusterConfig masterGlobalAccessConfig */
                masterGlobalAccessConfig?: (google.container.v1.IPrivateClusterMasterGlobalAccessConfig|null);

                /** PrivateClusterConfig privateEndpointSubnetwork */
                privateEndpointSubnetwork?: (string|null);
            }

            /** Represents a PrivateClusterConfig. */
            class PrivateClusterConfig implements IPrivateClusterConfig {

                /**
                 * Constructs a new PrivateClusterConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IPrivateClusterConfig);

                /** PrivateClusterConfig enablePrivateNodes. */
                public enablePrivateNodes: boolean;

                /** PrivateClusterConfig enablePrivateEndpoint. */
                public enablePrivateEndpoint: boolean;

                /** PrivateClusterConfig masterIpv4CidrBlock. */
                public masterIpv4CidrBlock: string;

                /** PrivateClusterConfig privateEndpoint. */
                public privateEndpoint: string;

                /** PrivateClusterConfig publicEndpoint. */
                public publicEndpoint: string;

                /** PrivateClusterConfig peeringName. */
                public peeringName: string;

                /** PrivateClusterConfig masterGlobalAccessConfig. */
                public masterGlobalAccessConfig?: (google.container.v1.IPrivateClusterMasterGlobalAccessConfig|null);

                /** PrivateClusterConfig privateEndpointSubnetwork. */
                public privateEndpointSubnetwork: string;

                /**
                 * Creates a new PrivateClusterConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns PrivateClusterConfig instance
                 */
                public static create(properties?: google.container.v1.IPrivateClusterConfig): google.container.v1.PrivateClusterConfig;

                /**
                 * Encodes the specified PrivateClusterConfig message. Does not implicitly {@link google.container.v1.PrivateClusterConfig.verify|verify} messages.
                 * @param message PrivateClusterConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IPrivateClusterConfig, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a PrivateClusterConfig message.
                 * @param message Plain 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 PrivateClusterConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns PrivateClusterConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.PrivateClusterConfig;

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

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

                /**
                 * Gets the default type url for PrivateClusterConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of an AuthenticatorGroupsConfig. */
            interface IAuthenticatorGroupsConfig {

                /** AuthenticatorGroupsConfig enabled */
                enabled?: (boolean|null);

                /** AuthenticatorGroupsConfig securityGroup */
                securityGroup?: (string|null);
            }

            /** Represents an AuthenticatorGroupsConfig. */
            class AuthenticatorGroupsConfig implements IAuthenticatorGroupsConfig {

                /**
                 * Constructs a new AuthenticatorGroupsConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IAuthenticatorGroupsConfig);

                /** AuthenticatorGroupsConfig enabled. */
                public enabled: boolean;

                /** AuthenticatorGroupsConfig securityGroup. */
                public securityGroup: string;

                /**
                 * Creates a new AuthenticatorGroupsConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns AuthenticatorGroupsConfig instance
                 */
                public static create(properties?: google.container.v1.IAuthenticatorGroupsConfig): google.container.v1.AuthenticatorGroupsConfig;

                /**
                 * Encodes the specified AuthenticatorGroupsConfig message. Does not implicitly {@link google.container.v1.AuthenticatorGroupsConfig.verify|verify} messages.
                 * @param message AuthenticatorGroupsConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IAuthenticatorGroupsConfig, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies an AuthenticatorGroupsConfig message.
                 * @param message Plain 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 AuthenticatorGroupsConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns AuthenticatorGroupsConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.AuthenticatorGroupsConfig;

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

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

                /**
                 * Gets the default type url for AuthenticatorGroupsConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a CloudRunConfig. */
            interface ICloudRunConfig {

                /** CloudRunConfig disabled */
                disabled?: (boolean|null);

                /** CloudRunConfig loadBalancerType */
                loadBalancerType?: (google.container.v1.CloudRunConfig.LoadBalancerType|keyof typeof google.container.v1.CloudRunConfig.LoadBalancerType|null);
            }

            /** Represents a CloudRunConfig. */
            class CloudRunConfig implements ICloudRunConfig {

                /**
                 * Constructs a new CloudRunConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.ICloudRunConfig);

                /** CloudRunConfig disabled. */
                public disabled: boolean;

                /** CloudRunConfig loadBalancerType. */
                public loadBalancerType: (google.container.v1.CloudRunConfig.LoadBalancerType|keyof typeof google.container.v1.CloudRunConfig.LoadBalancerType);

                /**
                 * Creates a new CloudRunConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns CloudRunConfig instance
                 */
                public static create(properties?: google.container.v1.ICloudRunConfig): google.container.v1.CloudRunConfig;

                /**
                 * Encodes the specified CloudRunConfig message. Does not implicitly {@link google.container.v1.CloudRunConfig.verify|verify} messages.
                 * @param message CloudRunConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.ICloudRunConfig, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a CloudRunConfig message.
                 * @param message Plain 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 CloudRunConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns CloudRunConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.CloudRunConfig;

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

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

                /**
                 * Gets the default type url for CloudRunConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace CloudRunConfig {

                /** LoadBalancerType enum. */
                enum LoadBalancerType {
                    LOAD_BALANCER_TYPE_UNSPECIFIED = 0,
                    LOAD_BALANCER_TYPE_EXTERNAL = 1,
                    LOAD_BALANCER_TYPE_INTERNAL = 2
                }
            }

            /** Properties of a ConfigConnectorConfig. */
            interface IConfigConnectorConfig {

                /** ConfigConnectorConfig enabled */
                enabled?: (boolean|null);
            }

            /** Represents a ConfigConnectorConfig. */
            class ConfigConnectorConfig implements IConfigConnectorConfig {

                /**
                 * Constructs a new ConfigConnectorConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IConfigConnectorConfig);

                /** ConfigConnectorConfig enabled. */
                public enabled: boolean;

                /**
                 * Creates a new ConfigConnectorConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ConfigConnectorConfig instance
                 */
                public static create(properties?: google.container.v1.IConfigConnectorConfig): google.container.v1.ConfigConnectorConfig;

                /**
                 * Encodes the specified ConfigConnectorConfig message. Does not implicitly {@link google.container.v1.ConfigConnectorConfig.verify|verify} messages.
                 * @param message ConfigConnectorConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IConfigConnectorConfig, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a ConfigConnectorConfig message.
                 * @param message Plain 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 ConfigConnectorConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ConfigConnectorConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.ConfigConnectorConfig;

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

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

                /**
                 * Gets the default type url for ConfigConnectorConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a GcePersistentDiskCsiDriverConfig. */
            interface IGcePersistentDiskCsiDriverConfig {

                /** GcePersistentDiskCsiDriverConfig enabled */
                enabled?: (boolean|null);
            }

            /** Represents a GcePersistentDiskCsiDriverConfig. */
            class GcePersistentDiskCsiDriverConfig implements IGcePersistentDiskCsiDriverConfig {

                /**
                 * Constructs a new GcePersistentDiskCsiDriverConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IGcePersistentDiskCsiDriverConfig);

                /** GcePersistentDiskCsiDriverConfig enabled. */
                public enabled: boolean;

                /**
                 * Creates a new GcePersistentDiskCsiDriverConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns GcePersistentDiskCsiDriverConfig instance
                 */
                public static create(properties?: google.container.v1.IGcePersistentDiskCsiDriverConfig): google.container.v1.GcePersistentDiskCsiDriverConfig;

                /**
                 * Encodes the specified GcePersistentDiskCsiDriverConfig message. Does not implicitly {@link google.container.v1.GcePersistentDiskCsiDriverConfig.verify|verify} messages.
                 * @param message GcePersistentDiskCsiDriverConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IGcePersistentDiskCsiDriverConfig, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a GcePersistentDiskCsiDriverConfig message.
                 * @param message Plain 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 GcePersistentDiskCsiDriverConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns GcePersistentDiskCsiDriverConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.GcePersistentDiskCsiDriverConfig;

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

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

                /**
                 * Gets the default type url for GcePersistentDiskCsiDriverConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a GcpFilestoreCsiDriverConfig. */
            interface IGcpFilestoreCsiDriverConfig {

                /** GcpFilestoreCsiDriverConfig enabled */
                enabled?: (boolean|null);
            }

            /** Represents a GcpFilestoreCsiDriverConfig. */
            class GcpFilestoreCsiDriverConfig implements IGcpFilestoreCsiDriverConfig {

                /**
                 * Constructs a new GcpFilestoreCsiDriverConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IGcpFilestoreCsiDriverConfig);

                /** GcpFilestoreCsiDriverConfig enabled. */
                public enabled: boolean;

                /**
                 * Creates a new GcpFilestoreCsiDriverConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns GcpFilestoreCsiDriverConfig instance
                 */
                public static create(properties?: google.container.v1.IGcpFilestoreCsiDriverConfig): google.container.v1.GcpFilestoreCsiDriverConfig;

                /**
                 * Encodes the specified GcpFilestoreCsiDriverConfig message. Does not implicitly {@link google.container.v1.GcpFilestoreCsiDriverConfig.verify|verify} messages.
                 * @param message GcpFilestoreCsiDriverConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IGcpFilestoreCsiDriverConfig, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a GcpFilestoreCsiDriverConfig message.
                 * @param message Plain 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 GcpFilestoreCsiDriverConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns GcpFilestoreCsiDriverConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.GcpFilestoreCsiDriverConfig;

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

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

                /**
                 * Gets the default type url for GcpFilestoreCsiDriverConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a GcsFuseCsiDriverConfig. */
            interface IGcsFuseCsiDriverConfig {

                /** GcsFuseCsiDriverConfig enabled */
                enabled?: (boolean|null);
            }

            /** Represents a GcsFuseCsiDriverConfig. */
            class GcsFuseCsiDriverConfig implements IGcsFuseCsiDriverConfig {

                /**
                 * Constructs a new GcsFuseCsiDriverConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IGcsFuseCsiDriverConfig);

                /** GcsFuseCsiDriverConfig enabled. */
                public enabled: boolean;

                /**
                 * Creates a new GcsFuseCsiDriverConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns GcsFuseCsiDriverConfig instance
                 */
                public static create(properties?: google.container.v1.IGcsFuseCsiDriverConfig): google.container.v1.GcsFuseCsiDriverConfig;

                /**
                 * Encodes the specified GcsFuseCsiDriverConfig message. Does not implicitly {@link google.container.v1.GcsFuseCsiDriverConfig.verify|verify} messages.
                 * @param message GcsFuseCsiDriverConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IGcsFuseCsiDriverConfig, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a GcsFuseCsiDriverConfig message.
                 * @param message Plain 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 GcsFuseCsiDriverConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns GcsFuseCsiDriverConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.GcsFuseCsiDriverConfig;

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

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

                /**
                 * Gets the default type url for GcsFuseCsiDriverConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a ParallelstoreCsiDriverConfig. */
            interface IParallelstoreCsiDriverConfig {

                /** ParallelstoreCsiDriverConfig enabled */
                enabled?: (boolean|null);
            }

            /** Represents a ParallelstoreCsiDriverConfig. */
            class ParallelstoreCsiDriverConfig implements IParallelstoreCsiDriverConfig {

                /**
                 * Constructs a new ParallelstoreCsiDriverConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IParallelstoreCsiDriverConfig);

                /** ParallelstoreCsiDriverConfig enabled. */
                public enabled: boolean;

                /**
                 * Creates a new ParallelstoreCsiDriverConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ParallelstoreCsiDriverConfig instance
                 */
                public static create(properties?: google.container.v1.IParallelstoreCsiDriverConfig): google.container.v1.ParallelstoreCsiDriverConfig;

                /**
                 * Encodes the specified ParallelstoreCsiDriverConfig message. Does not implicitly {@link google.container.v1.ParallelstoreCsiDriverConfig.verify|verify} messages.
                 * @param message ParallelstoreCsiDriverConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IParallelstoreCsiDriverConfig, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a ParallelstoreCsiDriverConfig message.
                 * @param message Plain 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 ParallelstoreCsiDriverConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ParallelstoreCsiDriverConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.ParallelstoreCsiDriverConfig;

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

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

                /**
                 * Gets the default type url for ParallelstoreCsiDriverConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a HighScaleCheckpointingConfig. */
            interface IHighScaleCheckpointingConfig {

                /** HighScaleCheckpointingConfig enabled */
                enabled?: (boolean|null);
            }

            /** Represents a HighScaleCheckpointingConfig. */
            class HighScaleCheckpointingConfig implements IHighScaleCheckpointingConfig {

                /**
                 * Constructs a new HighScaleCheckpointingConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IHighScaleCheckpointingConfig);

                /** HighScaleCheckpointingConfig enabled. */
                public enabled: boolean;

                /**
                 * Creates a new HighScaleCheckpointingConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns HighScaleCheckpointingConfig instance
                 */
                public static create(properties?: google.container.v1.IHighScaleCheckpointingConfig): google.container.v1.HighScaleCheckpointingConfig;

                /**
                 * Encodes the specified HighScaleCheckpointingConfig message. Does not implicitly {@link google.container.v1.HighScaleCheckpointingConfig.verify|verify} messages.
                 * @param message HighScaleCheckpointingConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IHighScaleCheckpointingConfig, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a HighScaleCheckpointingConfig message.
                 * @param message Plain 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 HighScaleCheckpointingConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns HighScaleCheckpointingConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.HighScaleCheckpointingConfig;

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

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

                /**
                 * Gets the default type url for HighScaleCheckpointingConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a LustreCsiDriverConfig. */
            interface ILustreCsiDriverConfig {

                /** LustreCsiDriverConfig enabled */
                enabled?: (boolean|null);

                /** LustreCsiDriverConfig enableLegacyLustrePort */
                enableLegacyLustrePort?: (boolean|null);

                /** LustreCsiDriverConfig disableMultiNic */
                disableMultiNic?: (boolean|null);
            }

            /** Represents a LustreCsiDriverConfig. */
            class LustreCsiDriverConfig implements ILustreCsiDriverConfig {

                /**
                 * Constructs a new LustreCsiDriverConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.ILustreCsiDriverConfig);

                /** LustreCsiDriverConfig enabled. */
                public enabled: boolean;

                /** LustreCsiDriverConfig enableLegacyLustrePort. */
                public enableLegacyLustrePort: boolean;

                /** LustreCsiDriverConfig disableMultiNic. */
                public disableMultiNic: boolean;

                /**
                 * Creates a new LustreCsiDriverConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns LustreCsiDriverConfig instance
                 */
                public static create(properties?: google.container.v1.ILustreCsiDriverConfig): google.container.v1.LustreCsiDriverConfig;

                /**
                 * Encodes the specified LustreCsiDriverConfig message. Does not implicitly {@link google.container.v1.LustreCsiDriverConfig.verify|verify} messages.
                 * @param message LustreCsiDriverConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.ILustreCsiDriverConfig, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a LustreCsiDriverConfig message.
                 * @param message Plain 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 LustreCsiDriverConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns LustreCsiDriverConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.LustreCsiDriverConfig;

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

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

                /**
                 * Gets the default type url for LustreCsiDriverConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a SlurmOperatorConfig. */
            interface ISlurmOperatorConfig {

                /** SlurmOperatorConfig enabled */
                enabled?: (boolean|null);
            }

            /** Represents a SlurmOperatorConfig. */
            class SlurmOperatorConfig implements ISlurmOperatorConfig {

                /**
                 * Constructs a new SlurmOperatorConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.ISlurmOperatorConfig);

                /** SlurmOperatorConfig enabled. */
                public enabled: boolean;

                /**
                 * Creates a new SlurmOperatorConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns SlurmOperatorConfig instance
                 */
                public static create(properties?: google.container.v1.ISlurmOperatorConfig): google.container.v1.SlurmOperatorConfig;

                /**
                 * Encodes the specified SlurmOperatorConfig message. Does not implicitly {@link google.container.v1.SlurmOperatorConfig.verify|verify} messages.
                 * @param message SlurmOperatorConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.ISlurmOperatorConfig, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a SlurmOperatorConfig message.
                 * @param message Plain 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 SlurmOperatorConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns SlurmOperatorConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.SlurmOperatorConfig;

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

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

                /**
                 * Gets the default type url for SlurmOperatorConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a NodeReadinessConfig. */
            interface INodeReadinessConfig {

                /** NodeReadinessConfig enabled */
                enabled?: (boolean|null);
            }

            /** Represents a NodeReadinessConfig. */
            class NodeReadinessConfig implements INodeReadinessConfig {

                /**
                 * Constructs a new NodeReadinessConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.INodeReadinessConfig);

                /** NodeReadinessConfig enabled. */
                public enabled: boolean;

                /**
                 * Creates a new NodeReadinessConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns NodeReadinessConfig instance
                 */
                public static create(properties?: google.container.v1.INodeReadinessConfig): google.container.v1.NodeReadinessConfig;

                /**
                 * Encodes the specified NodeReadinessConfig message. Does not implicitly {@link google.container.v1.NodeReadinessConfig.verify|verify} messages.
                 * @param message NodeReadinessConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.INodeReadinessConfig, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a NodeReadinessConfig message.
                 * @param message Plain 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 NodeReadinessConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns NodeReadinessConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.NodeReadinessConfig;

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

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

                /**
                 * Gets the default type url for NodeReadinessConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a SliceControllerConfig. */
            interface ISliceControllerConfig {

                /** SliceControllerConfig enabled */
                enabled?: (boolean|null);
            }

            /** Represents a SliceControllerConfig. */
            class SliceControllerConfig implements ISliceControllerConfig {

                /**
                 * Constructs a new SliceControllerConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.ISliceControllerConfig);

                /** SliceControllerConfig enabled. */
                public enabled: boolean;

                /**
                 * Creates a new SliceControllerConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns SliceControllerConfig instance
                 */
                public static create(properties?: google.container.v1.ISliceControllerConfig): google.container.v1.SliceControllerConfig;

                /**
                 * Encodes the specified SliceControllerConfig message. Does not implicitly {@link google.container.v1.SliceControllerConfig.verify|verify} messages.
                 * @param message SliceControllerConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.ISliceControllerConfig, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a SliceControllerConfig message.
                 * @param message Plain 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 SliceControllerConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns SliceControllerConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.SliceControllerConfig;

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

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

                /**
                 * Gets the default type url for SliceControllerConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a RayOperatorConfig. */
            interface IRayOperatorConfig {

                /** RayOperatorConfig enabled */
                enabled?: (boolean|null);

                /** RayOperatorConfig rayClusterLoggingConfig */
                rayClusterLoggingConfig?: (google.container.v1.IRayClusterLoggingConfig|null);

                /** RayOperatorConfig rayClusterMonitoringConfig */
                rayClusterMonitoringConfig?: (google.container.v1.IRayClusterMonitoringConfig|null);
            }

            /** Represents a RayOperatorConfig. */
            class RayOperatorConfig implements IRayOperatorConfig {

                /**
                 * Constructs a new RayOperatorConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IRayOperatorConfig);

                /** RayOperatorConfig enabled. */
                public enabled: boolean;

                /** RayOperatorConfig rayClusterLoggingConfig. */
                public rayClusterLoggingConfig?: (google.container.v1.IRayClusterLoggingConfig|null);

                /** RayOperatorConfig rayClusterMonitoringConfig. */
                public rayClusterMonitoringConfig?: (google.container.v1.IRayClusterMonitoringConfig|null);

                /**
                 * Creates a new RayOperatorConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns RayOperatorConfig instance
                 */
                public static create(properties?: google.container.v1.IRayOperatorConfig): google.container.v1.RayOperatorConfig;

                /**
                 * Encodes the specified RayOperatorConfig message. Does not implicitly {@link google.container.v1.RayOperatorConfig.verify|verify} messages.
                 * @param message RayOperatorConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IRayOperatorConfig, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a RayOperatorConfig message.
                 * @param message Plain 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 RayOperatorConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns RayOperatorConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.RayOperatorConfig;

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

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

                /**
                 * Gets the default type url for RayOperatorConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a GkeBackupAgentConfig. */
            interface IGkeBackupAgentConfig {

                /** GkeBackupAgentConfig enabled */
                enabled?: (boolean|null);
            }

            /** Represents a GkeBackupAgentConfig. */
            class GkeBackupAgentConfig implements IGkeBackupAgentConfig {

                /**
                 * Constructs a new GkeBackupAgentConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IGkeBackupAgentConfig);

                /** GkeBackupAgentConfig enabled. */
                public enabled: boolean;

                /**
                 * Creates a new GkeBackupAgentConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns GkeBackupAgentConfig instance
                 */
                public static create(properties?: google.container.v1.IGkeBackupAgentConfig): google.container.v1.GkeBackupAgentConfig;

                /**
                 * Encodes the specified GkeBackupAgentConfig message. Does not implicitly {@link google.container.v1.GkeBackupAgentConfig.verify|verify} messages.
                 * @param message GkeBackupAgentConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IGkeBackupAgentConfig, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a GkeBackupAgentConfig message.
                 * @param message Plain 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 GkeBackupAgentConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns GkeBackupAgentConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.GkeBackupAgentConfig;

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

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

                /**
                 * Gets the default type url for GkeBackupAgentConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a StatefulHAConfig. */
            interface IStatefulHAConfig {

                /** StatefulHAConfig enabled */
                enabled?: (boolean|null);
            }

            /** Represents a StatefulHAConfig. */
            class StatefulHAConfig implements IStatefulHAConfig {

                /**
                 * Constructs a new StatefulHAConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IStatefulHAConfig);

                /** StatefulHAConfig enabled. */
                public enabled: boolean;

                /**
                 * Creates a new StatefulHAConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns StatefulHAConfig instance
                 */
                public static create(properties?: google.container.v1.IStatefulHAConfig): google.container.v1.StatefulHAConfig;

                /**
                 * Encodes the specified StatefulHAConfig message. Does not implicitly {@link google.container.v1.StatefulHAConfig.verify|verify} messages.
                 * @param message StatefulHAConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IStatefulHAConfig, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a StatefulHAConfig message.
                 * @param message Plain 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 StatefulHAConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns StatefulHAConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.StatefulHAConfig;

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

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

                /**
                 * Gets the default type url for StatefulHAConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a MasterAuthorizedNetworksConfig. */
            interface IMasterAuthorizedNetworksConfig {

                /** MasterAuthorizedNetworksConfig enabled */
                enabled?: (boolean|null);

                /** MasterAuthorizedNetworksConfig cidrBlocks */
                cidrBlocks?: (google.container.v1.MasterAuthorizedNetworksConfig.ICidrBlock[]|null);

                /** MasterAuthorizedNetworksConfig gcpPublicCidrsAccessEnabled */
                gcpPublicCidrsAccessEnabled?: (boolean|null);

                /** MasterAuthorizedNetworksConfig privateEndpointEnforcementEnabled */
                privateEndpointEnforcementEnabled?: (boolean|null);
            }

            /** Represents a MasterAuthorizedNetworksConfig. */
            class MasterAuthorizedNetworksConfig implements IMasterAuthorizedNetworksConfig {

                /**
                 * Constructs a new MasterAuthorizedNetworksConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IMasterAuthorizedNetworksConfig);

                /** MasterAuthorizedNetworksConfig enabled. */
                public enabled: boolean;

                /** MasterAuthorizedNetworksConfig cidrBlocks. */
                public cidrBlocks: google.container.v1.MasterAuthorizedNetworksConfig.ICidrBlock[];

                /** MasterAuthorizedNetworksConfig gcpPublicCidrsAccessEnabled. */
                public gcpPublicCidrsAccessEnabled?: (boolean|null);

                /** MasterAuthorizedNetworksConfig privateEndpointEnforcementEnabled. */
                public privateEndpointEnforcementEnabled?: (boolean|null);

                /**
                 * Creates a new MasterAuthorizedNetworksConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns MasterAuthorizedNetworksConfig instance
                 */
                public static create(properties?: google.container.v1.IMasterAuthorizedNetworksConfig): google.container.v1.MasterAuthorizedNetworksConfig;

                /**
                 * Encodes the specified MasterAuthorizedNetworksConfig message. Does not implicitly {@link google.container.v1.MasterAuthorizedNetworksConfig.verify|verify} messages.
                 * @param message MasterAuthorizedNetworksConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IMasterAuthorizedNetworksConfig, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a MasterAuthorizedNetworksConfig message.
                 * @param message Plain 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 MasterAuthorizedNetworksConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns MasterAuthorizedNetworksConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.MasterAuthorizedNetworksConfig;

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

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

                /**
                 * Gets the default type url for MasterAuthorizedNetworksConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace MasterAuthorizedNetworksConfig {

                /** Properties of a CidrBlock. */
                interface ICidrBlock {

                    /** CidrBlock displayName */
                    displayName?: (string|null);

                    /** CidrBlock cidrBlock */
                    cidrBlock?: (string|null);
                }

                /** Represents a CidrBlock. */
                class CidrBlock implements ICidrBlock {

                    /**
                     * Constructs a new CidrBlock.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.container.v1.MasterAuthorizedNetworksConfig.ICidrBlock);

                    /** CidrBlock displayName. */
                    public displayName: string;

                    /** CidrBlock cidrBlock. */
                    public cidrBlock: string;

                    /**
                     * Creates a new CidrBlock instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CidrBlock instance
                     */
                    public static create(properties?: google.container.v1.MasterAuthorizedNetworksConfig.ICidrBlock): google.container.v1.MasterAuthorizedNetworksConfig.CidrBlock;

                    /**
                     * Encodes the specified CidrBlock message. Does not implicitly {@link google.container.v1.MasterAuthorizedNetworksConfig.CidrBlock.verify|verify} messages.
                     * @param message CidrBlock message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.container.v1.MasterAuthorizedNetworksConfig.ICidrBlock, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CidrBlock message, length delimited. Does not implicitly {@link google.container.v1.MasterAuthorizedNetworksConfig.CidrBlock.verify|verify} messages.
                     * @param message CidrBlock message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.container.v1.MasterAuthorizedNetworksConfig.ICidrBlock, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

                    /**
                     * Verifies a CidrBlock message.
                     * @param message Plain 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 CidrBlock message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CidrBlock
                     */
                    public static fromObject(object: { [k: string]: any }): google.container.v1.MasterAuthorizedNetworksConfig.CidrBlock;

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

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

                    /**
                     * Gets the default type url for CidrBlock
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }
            }

            /** Properties of a LegacyAbac. */
            interface ILegacyAbac {

                /** LegacyAbac enabled */
                enabled?: (boolean|null);
            }

            /** Represents a LegacyAbac. */
            class LegacyAbac implements ILegacyAbac {

                /**
                 * Constructs a new LegacyAbac.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.ILegacyAbac);

                /** LegacyAbac enabled. */
                public enabled: boolean;

                /**
                 * Creates a new LegacyAbac instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns LegacyAbac instance
                 */
                public static create(properties?: google.container.v1.ILegacyAbac): google.container.v1.LegacyAbac;

                /**
                 * Encodes the specified LegacyAbac message. Does not implicitly {@link google.container.v1.LegacyAbac.verify|verify} messages.
                 * @param message LegacyAbac message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.ILegacyAbac, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a LegacyAbac message.
                 * @param message Plain 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 LegacyAbac message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns LegacyAbac
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.LegacyAbac;

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

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

                /**
                 * Gets the default type url for LegacyAbac
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a NetworkPolicy. */
            interface INetworkPolicy {

                /** NetworkPolicy provider */
                provider?: (google.container.v1.NetworkPolicy.Provider|keyof typeof google.container.v1.NetworkPolicy.Provider|null);

                /** NetworkPolicy enabled */
                enabled?: (boolean|null);
            }

            /** Represents a NetworkPolicy. */
            class NetworkPolicy implements INetworkPolicy {

                /**
                 * Constructs a new NetworkPolicy.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.INetworkPolicy);

                /** NetworkPolicy provider. */
                public provider: (google.container.v1.NetworkPolicy.Provider|keyof typeof google.container.v1.NetworkPolicy.Provider);

                /** NetworkPolicy enabled. */
                public enabled: boolean;

                /**
                 * Creates a new NetworkPolicy instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns NetworkPolicy instance
                 */
                public static create(properties?: google.container.v1.INetworkPolicy): google.container.v1.NetworkPolicy;

                /**
                 * Encodes the specified NetworkPolicy message. Does not implicitly {@link google.container.v1.NetworkPolicy.verify|verify} messages.
                 * @param message NetworkPolicy message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.INetworkPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a NetworkPolicy message.
                 * @param message Plain 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 NetworkPolicy message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns NetworkPolicy
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.NetworkPolicy;

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

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

                /**
                 * Gets the default type url for NetworkPolicy
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace NetworkPolicy {

                /** Provider enum. */
                enum Provider {
                    PROVIDER_UNSPECIFIED = 0,
                    CALICO = 1
                }
            }

            /** Properties of a BinaryAuthorization. */
            interface IBinaryAuthorization {

                /** BinaryAuthorization enabled */
                enabled?: (boolean|null);

                /** BinaryAuthorization evaluationMode */
                evaluationMode?: (google.container.v1.BinaryAuthorization.EvaluationMode|keyof typeof google.container.v1.BinaryAuthorization.EvaluationMode|null);
            }

            /** Represents a BinaryAuthorization. */
            class BinaryAuthorization implements IBinaryAuthorization {

                /**
                 * Constructs a new BinaryAuthorization.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IBinaryAuthorization);

                /** BinaryAuthorization enabled. */
                public enabled: boolean;

                /** BinaryAuthorization evaluationMode. */
                public evaluationMode: (google.container.v1.BinaryAuthorization.EvaluationMode|keyof typeof google.container.v1.BinaryAuthorization.EvaluationMode);

                /**
                 * Creates a new BinaryAuthorization instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns BinaryAuthorization instance
                 */
                public static create(properties?: google.container.v1.IBinaryAuthorization): google.container.v1.BinaryAuthorization;

                /**
                 * Encodes the specified BinaryAuthorization message. Does not implicitly {@link google.container.v1.BinaryAuthorization.verify|verify} messages.
                 * @param message BinaryAuthorization message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IBinaryAuthorization, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a BinaryAuthorization message.
                 * @param message Plain 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 BinaryAuthorization message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns BinaryAuthorization
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.BinaryAuthorization;

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

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

                /**
                 * Gets the default type url for BinaryAuthorization
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace BinaryAuthorization {

                /** EvaluationMode enum. */
                enum EvaluationMode {
                    EVALUATION_MODE_UNSPECIFIED = 0,
                    DISABLED = 1,
                    PROJECT_SINGLETON_POLICY_ENFORCE = 2
                }
            }

            /** Properties of a PodCIDROverprovisionConfig. */
            interface IPodCIDROverprovisionConfig {

                /** PodCIDROverprovisionConfig disable */
                disable?: (boolean|null);
            }

            /** Represents a PodCIDROverprovisionConfig. */
            class PodCIDROverprovisionConfig implements IPodCIDROverprovisionConfig {

                /**
                 * Constructs a new PodCIDROverprovisionConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IPodCIDROverprovisionConfig);

                /** PodCIDROverprovisionConfig disable. */
                public disable: boolean;

                /**
                 * Creates a new PodCIDROverprovisionConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns PodCIDROverprovisionConfig instance
                 */
                public static create(properties?: google.container.v1.IPodCIDROverprovisionConfig): google.container.v1.PodCIDROverprovisionConfig;

                /**
                 * Encodes the specified PodCIDROverprovisionConfig message. Does not implicitly {@link google.container.v1.PodCIDROverprovisionConfig.verify|verify} messages.
                 * @param message PodCIDROverprovisionConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IPodCIDROverprovisionConfig, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a PodCIDROverprovisionConfig message.
                 * @param message Plain 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 PodCIDROverprovisionConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns PodCIDROverprovisionConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.PodCIDROverprovisionConfig;

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

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

                /**
                 * Gets the default type url for PodCIDROverprovisionConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a IPAllocationPolicy. */
            interface IIPAllocationPolicy {

                /** IPAllocationPolicy useIpAliases */
                useIpAliases?: (boolean|null);

                /** IPAllocationPolicy createSubnetwork */
                createSubnetwork?: (boolean|null);

                /** IPAllocationPolicy subnetworkName */
                subnetworkName?: (string|null);

                /** IPAllocationPolicy clusterIpv4Cidr */
                clusterIpv4Cidr?: (string|null);

                /** IPAllocationPolicy nodeIpv4Cidr */
                nodeIpv4Cidr?: (string|null);

                /** IPAllocationPolicy servicesIpv4Cidr */
                servicesIpv4Cidr?: (string|null);

                /** IPAllocationPolicy clusterSecondaryRangeName */
                clusterSecondaryRangeName?: (string|null);

                /** IPAllocationPolicy servicesSecondaryRangeName */
                servicesSecondaryRangeName?: (string|null);

                /** IPAllocationPolicy clusterIpv4CidrBlock */
                clusterIpv4CidrBlock?: (string|null);

                /** IPAllocationPolicy nodeIpv4CidrBlock */
                nodeIpv4CidrBlock?: (string|null);

                /** IPAllocationPolicy servicesIpv4CidrBlock */
                servicesIpv4CidrBlock?: (string|null);

                /** IPAllocationPolicy tpuIpv4CidrBlock */
                tpuIpv4CidrBlock?: (string|null);

                /** IPAllocationPolicy useRoutes */
                useRoutes?: (boolean|null);

                /** IPAllocationPolicy stackType */
                stackType?: (google.container.v1.StackType|keyof typeof google.container.v1.StackType|null);

                /** IPAllocationPolicy ipv6AccessType */
                ipv6AccessType?: (google.container.v1.IPv6AccessType|keyof typeof google.container.v1.IPv6AccessType|null);

                /** IPAllocationPolicy podCidrOverprovisionConfig */
                podCidrOverprovisionConfig?: (google.container.v1.IPodCIDROverprovisionConfig|null);

                /** IPAllocationPolicy subnetIpv6CidrBlock */
                subnetIpv6CidrBlock?: (string|null);

                /** IPAllocationPolicy servicesIpv6CidrBlock */
                servicesIpv6CidrBlock?: (string|null);

                /** IPAllocationPolicy additionalPodRangesConfig */
                additionalPodRangesConfig?: (google.container.v1.IAdditionalPodRangesConfig|null);

                /** IPAllocationPolicy defaultPodIpv4RangeUtilization */
                defaultPodIpv4RangeUtilization?: (number|null);

                /** IPAllocationPolicy additionalIpRangesConfigs */
                additionalIpRangesConfigs?: (google.container.v1.IAdditionalIPRangesConfig[]|null);

                /** IPAllocationPolicy autoIpamConfig */
                autoIpamConfig?: (google.container.v1.IAutoIpamConfig|null);

                /** IPAllocationPolicy networkTierConfig */
                networkTierConfig?: (google.container.v1.INetworkTierConfig|null);
            }

            /** Represents a IPAllocationPolicy. */
            class IPAllocationPolicy implements IIPAllocationPolicy {

                /**
                 * Constructs a new IPAllocationPolicy.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IIPAllocationPolicy);

                /** IPAllocationPolicy useIpAliases. */
                public useIpAliases: boolean;

                /** IPAllocationPolicy createSubnetwork. */
                public createSubnetwork: boolean;

                /** IPAllocationPolicy subnetworkName. */
                public subnetworkName: string;

                /** IPAllocationPolicy clusterIpv4Cidr. */
                public clusterIpv4Cidr: string;

                /** IPAllocationPolicy nodeIpv4Cidr. */
                public nodeIpv4Cidr: string;

                /** IPAllocationPolicy servicesIpv4Cidr. */
                public servicesIpv4Cidr: string;

                /** IPAllocationPolicy clusterSecondaryRangeName. */
                public clusterSecondaryRangeName: string;

                /** IPAllocationPolicy servicesSecondaryRangeName. */
                public servicesSecondaryRangeName: string;

                /** IPAllocationPolicy clusterIpv4CidrBlock. */
                public clusterIpv4CidrBlock: string;

                /** IPAllocationPolicy nodeIpv4CidrBlock. */
                public nodeIpv4CidrBlock: string;

                /** IPAllocationPolicy servicesIpv4CidrBlock. */
                public servicesIpv4CidrBlock: string;

                /** IPAllocationPolicy tpuIpv4CidrBlock. */
                public tpuIpv4CidrBlock: string;

                /** IPAllocationPolicy useRoutes. */
                public useRoutes: boolean;

                /** IPAllocationPolicy stackType. */
                public stackType: (google.container.v1.StackType|keyof typeof google.container.v1.StackType);

                /** IPAllocationPolicy ipv6AccessType. */
                public ipv6AccessType: (google.container.v1.IPv6AccessType|keyof typeof google.container.v1.IPv6AccessType);

                /** IPAllocationPolicy podCidrOverprovisionConfig. */
                public podCidrOverprovisionConfig?: (google.container.v1.IPodCIDROverprovisionConfig|null);

                /** IPAllocationPolicy subnetIpv6CidrBlock. */
                public subnetIpv6CidrBlock: string;

                /** IPAllocationPolicy servicesIpv6CidrBlock. */
                public servicesIpv6CidrBlock: string;

                /** IPAllocationPolicy additionalPodRangesConfig. */
                public additionalPodRangesConfig?: (google.container.v1.IAdditionalPodRangesConfig|null);

                /** IPAllocationPolicy defaultPodIpv4RangeUtilization. */
                public defaultPodIpv4RangeUtilization: number;

                /** IPAllocationPolicy additionalIpRangesConfigs. */
                public additionalIpRangesConfigs: google.container.v1.IAdditionalIPRangesConfig[];

                /** IPAllocationPolicy autoIpamConfig. */
                public autoIpamConfig?: (google.container.v1.IAutoIpamConfig|null);

                /** IPAllocationPolicy networkTierConfig. */
                public networkTierConfig?: (google.container.v1.INetworkTierConfig|null);

                /**
                 * Creates a new IPAllocationPolicy instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns IPAllocationPolicy instance
                 */
                public static create(properties?: google.container.v1.IIPAllocationPolicy): google.container.v1.IPAllocationPolicy;

                /**
                 * Encodes the specified IPAllocationPolicy message. Does not implicitly {@link google.container.v1.IPAllocationPolicy.verify|verify} messages.
                 * @param message IPAllocationPolicy message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IIPAllocationPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a IPAllocationPolicy message.
                 * @param message Plain 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 IPAllocationPolicy message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns IPAllocationPolicy
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.IPAllocationPolicy;

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

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

                /**
                 * Gets the default type url for IPAllocationPolicy
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a Cluster. */
            interface ICluster {

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

                /** Cluster description */
                description?: (string|null);

                /** Cluster initialNodeCount */
                initialNodeCount?: (number|null);

                /** Cluster nodeConfig */
                nodeConfig?: (google.container.v1.INodeConfig|null);

                /** Cluster masterAuth */
                masterAuth?: (google.container.v1.IMasterAuth|null);

                /** Cluster loggingService */
                loggingService?: (string|null);

                /** Cluster monitoringService */
                monitoringService?: (string|null);

                /** Cluster network */
                network?: (string|null);

                /** Cluster clusterIpv4Cidr */
                clusterIpv4Cidr?: (string|null);

                /** Cluster addonsConfig */
                addonsConfig?: (google.container.v1.IAddonsConfig|null);

                /** Cluster subnetwork */
                subnetwork?: (string|null);

                /** Cluster nodePools */
                nodePools?: (google.container.v1.INodePool[]|null);

                /** Cluster locations */
                locations?: (string[]|null);

                /** Cluster enableKubernetesAlpha */
                enableKubernetesAlpha?: (boolean|null);

                /** Cluster alphaClusterFeatureGates */
                alphaClusterFeatureGates?: (string[]|null);

                /** Cluster resourceLabels */
                resourceLabels?: ({ [k: string]: string }|null);

                /** Cluster labelFingerprint */
                labelFingerprint?: (string|null);

                /** Cluster legacyAbac */
                legacyAbac?: (google.container.v1.ILegacyAbac|null);

                /** Cluster networkPolicy */
                networkPolicy?: (google.container.v1.INetworkPolicy|null);

                /** Cluster ipAllocationPolicy */
                ipAllocationPolicy?: (google.container.v1.IIPAllocationPolicy|null);

                /** Cluster masterAuthorizedNetworksConfig */
                masterAuthorizedNetworksConfig?: (google.container.v1.IMasterAuthorizedNetworksConfig|null);

                /** Cluster maintenancePolicy */
                maintenancePolicy?: (google.container.v1.IMaintenancePolicy|null);

                /** Cluster binaryAuthorization */
                binaryAuthorization?: (google.container.v1.IBinaryAuthorization|null);

                /** Cluster autoscaling */
                autoscaling?: (google.container.v1.IClusterAutoscaling|null);

                /** Cluster networkConfig */
                networkConfig?: (google.container.v1.INetworkConfig|null);

                /** Cluster defaultMaxPodsConstraint */
                defaultMaxPodsConstraint?: (google.container.v1.IMaxPodsConstraint|null);

                /** Cluster resourceUsageExportConfig */
                resourceUsageExportConfig?: (google.container.v1.IResourceUsageExportConfig|null);

                /** Cluster authenticatorGroupsConfig */
                authenticatorGroupsConfig?: (google.container.v1.IAuthenticatorGroupsConfig|null);

                /** Cluster privateClusterConfig */
                privateClusterConfig?: (google.container.v1.IPrivateClusterConfig|null);

                /** Cluster databaseEncryption */
                databaseEncryption?: (google.container.v1.IDatabaseEncryption|null);

                /** Cluster verticalPodAutoscaling */
                verticalPodAutoscaling?: (google.container.v1.IVerticalPodAutoscaling|null);

                /** Cluster shieldedNodes */
                shieldedNodes?: (google.container.v1.IShieldedNodes|null);

                /** Cluster releaseChannel */
                releaseChannel?: (google.container.v1.IReleaseChannel|null);

                /** Cluster workloadIdentityConfig */
                workloadIdentityConfig?: (google.container.v1.IWorkloadIdentityConfig|null);

                /** Cluster meshCertificates */
                meshCertificates?: (google.container.v1.IMeshCertificates|null);

                /** Cluster costManagementConfig */
                costManagementConfig?: (google.container.v1.ICostManagementConfig|null);

                /** Cluster notificationConfig */
                notificationConfig?: (google.container.v1.INotificationConfig|null);

                /** Cluster confidentialNodes */
                confidentialNodes?: (google.container.v1.IConfidentialNodes|null);

                /** Cluster identityServiceConfig */
                identityServiceConfig?: (google.container.v1.IIdentityServiceConfig|null);

                /** Cluster selfLink */
                selfLink?: (string|null);

                /** Cluster zone */
                zone?: (string|null);

                /** Cluster endpoint */
                endpoint?: (string|null);

                /** Cluster initialClusterVersion */
                initialClusterVersion?: (string|null);

                /** Cluster currentMasterVersion */
                currentMasterVersion?: (string|null);

                /** Cluster currentNodeVersion */
                currentNodeVersion?: (string|null);

                /** Cluster createTime */
                createTime?: (string|null);

                /** Cluster status */
                status?: (google.container.v1.Cluster.Status|keyof typeof google.container.v1.Cluster.Status|null);

                /** Cluster statusMessage */
                statusMessage?: (string|null);

                /** Cluster nodeIpv4CidrSize */
                nodeIpv4CidrSize?: (number|null);

                /** Cluster servicesIpv4Cidr */
                servicesIpv4Cidr?: (string|null);

                /** Cluster instanceGroupUrls */
                instanceGroupUrls?: (string[]|null);

                /** Cluster currentNodeCount */
                currentNodeCount?: (number|null);

                /** Cluster expireTime */
                expireTime?: (string|null);

                /** Cluster location */
                location?: (string|null);

                /** Cluster enableTpu */
                enableTpu?: (boolean|null);

                /** Cluster tpuIpv4CidrBlock */
                tpuIpv4CidrBlock?: (string|null);

                /** Cluster conditions */
                conditions?: (google.container.v1.IStatusCondition[]|null);

                /** Cluster autopilot */
                autopilot?: (google.container.v1.IAutopilot|null);

                /** Cluster id */
                id?: (string|null);

                /** Cluster nodePoolDefaults */
                nodePoolDefaults?: (google.container.v1.INodePoolDefaults|null);

                /** Cluster loggingConfig */
                loggingConfig?: (google.container.v1.ILoggingConfig|null);

                /** Cluster monitoringConfig */
                monitoringConfig?: (google.container.v1.IMonitoringConfig|null);

                /** Cluster nodePoolAutoConfig */
                nodePoolAutoConfig?: (google.container.v1.INodePoolAutoConfig|null);

                /** Cluster podAutoscaling */
                podAutoscaling?: (google.container.v1.IPodAutoscaling|null);

                /** Cluster etag */
                etag?: (string|null);

                /** Cluster fleet */
                fleet?: (google.container.v1.IFleet|null);

                /** Cluster securityPostureConfig */
                securityPostureConfig?: (google.container.v1.ISecurityPostureConfig|null);

                /** Cluster controlPlaneEndpointsConfig */
                controlPlaneEndpointsConfig?: (google.container.v1.IControlPlaneEndpointsConfig|null);

                /** Cluster enableK8sBetaApis */
                enableK8sBetaApis?: (google.container.v1.IK8sBetaAPIConfig|null);

                /** Cluster enterpriseConfig */
                enterpriseConfig?: (google.container.v1.IEnterpriseConfig|null);

                /** Cluster secretManagerConfig */
                secretManagerConfig?: (google.container.v1.ISecretManagerConfig|null);

                /** Cluster compliancePostureConfig */
                compliancePostureConfig?: (google.container.v1.ICompliancePostureConfig|null);

                /** Cluster satisfiesPzs */
                satisfiesPzs?: (boolean|null);

                /** Cluster satisfiesPzi */
                satisfiesPzi?: (boolean|null);

                /** Cluster userManagedKeysConfig */
                userManagedKeysConfig?: (google.container.v1.IUserManagedKeysConfig|null);

                /** Cluster rbacBindingConfig */
                rbacBindingConfig?: (google.container.v1.IRBACBindingConfig|null);

                /** Cluster gkeAutoUpgradeConfig */
                gkeAutoUpgradeConfig?: (google.container.v1.IGkeAutoUpgradeConfig|null);

                /** Cluster anonymousAuthenticationConfig */
                anonymousAuthenticationConfig?: (google.container.v1.IAnonymousAuthenticationConfig|null);

                /** Cluster scheduleUpgradeConfig */
                scheduleUpgradeConfig?: (google.container.v1.IScheduleUpgradeConfig|null);

                /** Cluster secretSyncConfig */
                secretSyncConfig?: (google.container.v1.ISecretSyncConfig|null);

                /** Cluster managedOpentelemetryConfig */
                managedOpentelemetryConfig?: (google.container.v1.IManagedOpenTelemetryConfig|null);

                /** Cluster controlPlaneEgress */
                controlPlaneEgress?: (google.container.v1.IControlPlaneEgress|null);

                /** Cluster managedMachineLearningDiagnosticsConfig */
                managedMachineLearningDiagnosticsConfig?: (google.container.v1.IManagedMachineLearningDiagnosticsConfig|null);

                /** Cluster nodeCreationConfig */
                nodeCreationConfig?: (google.container.v1.INodeCreationConfig|null);
            }

            /** Represents a Cluster. */
            class Cluster implements ICluster {

                /**
                 * Constructs a new Cluster.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.ICluster);

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

                /** Cluster description. */
                public description: string;

                /** Cluster initialNodeCount. */
                public initialNodeCount: number;

                /** Cluster nodeConfig. */
                public nodeConfig?: (google.container.v1.INodeConfig|null);

                /** Cluster masterAuth. */
                public masterAuth?: (google.container.v1.IMasterAuth|null);

                /** Cluster loggingService. */
                public loggingService: string;

                /** Cluster monitoringService. */
                public monitoringService: string;

                /** Cluster network. */
                public network: string;

                /** Cluster clusterIpv4Cidr. */
                public clusterIpv4Cidr: string;

                /** Cluster addonsConfig. */
                public addonsConfig?: (google.container.v1.IAddonsConfig|null);

                /** Cluster subnetwork. */
                public subnetwork: string;

                /** Cluster nodePools. */
                public nodePools: google.container.v1.INodePool[];

                /** Cluster locations. */
                public locations: string[];

                /** Cluster enableKubernetesAlpha. */
                public enableKubernetesAlpha: boolean;

                /** Cluster alphaClusterFeatureGates. */
                public alphaClusterFeatureGates: string[];

                /** Cluster resourceLabels. */
                public resourceLabels: { [k: string]: string };

                /** Cluster labelFingerprint. */
                public labelFingerprint: string;

                /** Cluster legacyAbac. */
                public legacyAbac?: (google.container.v1.ILegacyAbac|null);

                /** Cluster networkPolicy. */
                public networkPolicy?: (google.container.v1.INetworkPolicy|null);

                /** Cluster ipAllocationPolicy. */
                public ipAllocationPolicy?: (google.container.v1.IIPAllocationPolicy|null);

                /** Cluster masterAuthorizedNetworksConfig. */
                public masterAuthorizedNetworksConfig?: (google.container.v1.IMasterAuthorizedNetworksConfig|null);

                /** Cluster maintenancePolicy. */
                public maintenancePolicy?: (google.container.v1.IMaintenancePolicy|null);

                /** Cluster binaryAuthorization. */
                public binaryAuthorization?: (google.container.v1.IBinaryAuthorization|null);

                /** Cluster autoscaling. */
                public autoscaling?: (google.container.v1.IClusterAutoscaling|null);

                /** Cluster networkConfig. */
                public networkConfig?: (google.container.v1.INetworkConfig|null);

                /** Cluster defaultMaxPodsConstraint. */
                public defaultMaxPodsConstraint?: (google.container.v1.IMaxPodsConstraint|null);

                /** Cluster resourceUsageExportConfig. */
                public resourceUsageExportConfig?: (google.container.v1.IResourceUsageExportConfig|null);

                /** Cluster authenticatorGroupsConfig. */
                public authenticatorGroupsConfig?: (google.container.v1.IAuthenticatorGroupsConfig|null);

                /** Cluster privateClusterConfig. */
                public privateClusterConfig?: (google.container.v1.IPrivateClusterConfig|null);

                /** Cluster databaseEncryption. */
                public databaseEncryption?: (google.container.v1.IDatabaseEncryption|null);

                /** Cluster verticalPodAutoscaling. */
                public verticalPodAutoscaling?: (google.container.v1.IVerticalPodAutoscaling|null);

                /** Cluster shieldedNodes. */
                public shieldedNodes?: (google.container.v1.IShieldedNodes|null);

                /** Cluster releaseChannel. */
                public releaseChannel?: (google.container.v1.IReleaseChannel|null);

                /** Cluster workloadIdentityConfig. */
                public workloadIdentityConfig?: (google.container.v1.IWorkloadIdentityConfig|null);

                /** Cluster meshCertificates. */
                public meshCertificates?: (google.container.v1.IMeshCertificates|null);

                /** Cluster costManagementConfig. */
                public costManagementConfig?: (google.container.v1.ICostManagementConfig|null);

                /** Cluster notificationConfig. */
                public notificationConfig?: (google.container.v1.INotificationConfig|null);

                /** Cluster confidentialNodes. */
                public confidentialNodes?: (google.container.v1.IConfidentialNodes|null);

                /** Cluster identityServiceConfig. */
                public identityServiceConfig?: (google.container.v1.IIdentityServiceConfig|null);

                /** Cluster selfLink. */
                public selfLink: string;

                /** Cluster zone. */
                public zone: string;

                /** Cluster endpoint. */
                public endpoint: string;

                /** Cluster initialClusterVersion. */
                public initialClusterVersion: string;

                /** Cluster currentMasterVersion. */
                public currentMasterVersion: string;

                /** Cluster currentNodeVersion. */
                public currentNodeVersion: string;

                /** Cluster createTime. */
                public createTime: string;

                /** Cluster status. */
                public status: (google.container.v1.Cluster.Status|keyof typeof google.container.v1.Cluster.Status);

                /** Cluster statusMessage. */
                public statusMessage: string;

                /** Cluster nodeIpv4CidrSize. */
                public nodeIpv4CidrSize: number;

                /** Cluster servicesIpv4Cidr. */
                public servicesIpv4Cidr: string;

                /** Cluster instanceGroupUrls. */
                public instanceGroupUrls: string[];

                /** Cluster currentNodeCount. */
                public currentNodeCount: number;

                /** Cluster expireTime. */
                public expireTime: string;

                /** Cluster location. */
                public location: string;

                /** Cluster enableTpu. */
                public enableTpu: boolean;

                /** Cluster tpuIpv4CidrBlock. */
                public tpuIpv4CidrBlock: string;

                /** Cluster conditions. */
                public conditions: google.container.v1.IStatusCondition[];

                /** Cluster autopilot. */
                public autopilot?: (google.container.v1.IAutopilot|null);

                /** Cluster id. */
                public id: string;

                /** Cluster nodePoolDefaults. */
                public nodePoolDefaults?: (google.container.v1.INodePoolDefaults|null);

                /** Cluster loggingConfig. */
                public loggingConfig?: (google.container.v1.ILoggingConfig|null);

                /** Cluster monitoringConfig. */
                public monitoringConfig?: (google.container.v1.IMonitoringConfig|null);

                /** Cluster nodePoolAutoConfig. */
                public nodePoolAutoConfig?: (google.container.v1.INodePoolAutoConfig|null);

                /** Cluster podAutoscaling. */
                public podAutoscaling?: (google.container.v1.IPodAutoscaling|null);

                /** Cluster etag. */
                public etag: string;

                /** Cluster fleet. */
                public fleet?: (google.container.v1.IFleet|null);

                /** Cluster securityPostureConfig. */
                public securityPostureConfig?: (google.container.v1.ISecurityPostureConfig|null);

                /** Cluster controlPlaneEndpointsConfig. */
                public controlPlaneEndpointsConfig?: (google.container.v1.IControlPlaneEndpointsConfig|null);

                /** Cluster enableK8sBetaApis. */
                public enableK8sBetaApis?: (google.container.v1.IK8sBetaAPIConfig|null);

                /** Cluster enterpriseConfig. */
                public enterpriseConfig?: (google.container.v1.IEnterpriseConfig|null);

                /** Cluster secretManagerConfig. */
                public secretManagerConfig?: (google.container.v1.ISecretManagerConfig|null);

                /** Cluster compliancePostureConfig. */
                public compliancePostureConfig?: (google.container.v1.ICompliancePostureConfig|null);

                /** Cluster satisfiesPzs. */
                public satisfiesPzs?: (boolean|null);

                /** Cluster satisfiesPzi. */
                public satisfiesPzi?: (boolean|null);

                /** Cluster userManagedKeysConfig. */
                public userManagedKeysConfig?: (google.container.v1.IUserManagedKeysConfig|null);

                /** Cluster rbacBindingConfig. */
                public rbacBindingConfig?: (google.container.v1.IRBACBindingConfig|null);

                /** Cluster gkeAutoUpgradeConfig. */
                public gkeAutoUpgradeConfig?: (google.container.v1.IGkeAutoUpgradeConfig|null);

                /** Cluster anonymousAuthenticationConfig. */
                public anonymousAuthenticationConfig?: (google.container.v1.IAnonymousAuthenticationConfig|null);

                /** Cluster scheduleUpgradeConfig. */
                public scheduleUpgradeConfig?: (google.container.v1.IScheduleUpgradeConfig|null);

                /** Cluster secretSyncConfig. */
                public secretSyncConfig?: (google.container.v1.ISecretSyncConfig|null);

                /** Cluster managedOpentelemetryConfig. */
                public managedOpentelemetryConfig?: (google.container.v1.IManagedOpenTelemetryConfig|null);

                /** Cluster controlPlaneEgress. */
                public controlPlaneEgress?: (google.container.v1.IControlPlaneEgress|null);

                /** Cluster managedMachineLearningDiagnosticsConfig. */
                public managedMachineLearningDiagnosticsConfig?: (google.container.v1.IManagedMachineLearningDiagnosticsConfig|null);

                /** Cluster nodeCreationConfig. */
                public nodeCreationConfig?: (google.container.v1.INodeCreationConfig|null);

                /**
                 * Creates a new Cluster instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns Cluster instance
                 */
                public static create(properties?: google.container.v1.ICluster): google.container.v1.Cluster;

                /**
                 * Encodes the specified Cluster message. Does not implicitly {@link google.container.v1.Cluster.verify|verify} messages.
                 * @param message Cluster message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.ICluster, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a Cluster message.
                 * @param message Plain 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 Cluster message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns Cluster
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.Cluster;

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

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

                /**
                 * Gets the default type url for Cluster
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace Cluster {

                /** Status enum. */
                enum Status {
                    STATUS_UNSPECIFIED = 0,
                    PROVISIONING = 1,
                    RUNNING = 2,
                    RECONCILING = 3,
                    STOPPING = 4,
                    ERROR = 5,
                    DEGRADED = 6
                }
            }

            /** Properties of a NodeCreationConfig. */
            interface INodeCreationConfig {

                /** NodeCreationConfig nodeCreationMode */
                nodeCreationMode?: (google.container.v1.NodeCreationConfig.Mode|keyof typeof google.container.v1.NodeCreationConfig.Mode|null);
            }

            /** Represents a NodeCreationConfig. */
            class NodeCreationConfig implements INodeCreationConfig {

                /**
                 * Constructs a new NodeCreationConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.INodeCreationConfig);

                /** NodeCreationConfig nodeCreationMode. */
                public nodeCreationMode: (google.container.v1.NodeCreationConfig.Mode|keyof typeof google.container.v1.NodeCreationConfig.Mode);

                /**
                 * Creates a new NodeCreationConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns NodeCreationConfig instance
                 */
                public static create(properties?: google.container.v1.INodeCreationConfig): google.container.v1.NodeCreationConfig;

                /**
                 * Encodes the specified NodeCreationConfig message. Does not implicitly {@link google.container.v1.NodeCreationConfig.verify|verify} messages.
                 * @param message NodeCreationConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.INodeCreationConfig, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a NodeCreationConfig message.
                 * @param message Plain 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 NodeCreationConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns NodeCreationConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.NodeCreationConfig;

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

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

                /**
                 * Gets the default type url for NodeCreationConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace NodeCreationConfig {

                /** Mode enum. */
                enum Mode {
                    MODE_UNSPECIFIED = 0,
                    VIA_KUBELET = 1,
                    VIA_CONTROL_PLANE = 2
                }
            }

            /** Properties of a ControlPlaneEgress. */
            interface IControlPlaneEgress {

                /** ControlPlaneEgress mode */
                mode?: (google.container.v1.ControlPlaneEgress.Mode|keyof typeof google.container.v1.ControlPlaneEgress.Mode|null);
            }

            /** Represents a ControlPlaneEgress. */
            class ControlPlaneEgress implements IControlPlaneEgress {

                /**
                 * Constructs a new ControlPlaneEgress.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IControlPlaneEgress);

                /** ControlPlaneEgress mode. */
                public mode: (google.container.v1.ControlPlaneEgress.Mode|keyof typeof google.container.v1.ControlPlaneEgress.Mode);

                /**
                 * Creates a new ControlPlaneEgress instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ControlPlaneEgress instance
                 */
                public static create(properties?: google.container.v1.IControlPlaneEgress): google.container.v1.ControlPlaneEgress;

                /**
                 * Encodes the specified ControlPlaneEgress message. Does not implicitly {@link google.container.v1.ControlPlaneEgress.verify|verify} messages.
                 * @param message ControlPlaneEgress message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IControlPlaneEgress, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a ControlPlaneEgress message.
                 * @param message Plain 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 ControlPlaneEgress message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ControlPlaneEgress
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.ControlPlaneEgress;

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

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

                /**
                 * Gets the default type url for ControlPlaneEgress
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace ControlPlaneEgress {

                /** Mode enum. */
                enum Mode {
                    MODE_UNSPECIFIED = 0,
                    VIA_CONTROL_PLANE = 1,
                    NONE = 2
                }
            }

            /** Properties of a RBACBindingConfig. */
            interface IRBACBindingConfig {

                /** RBACBindingConfig enableInsecureBindingSystemUnauthenticated */
                enableInsecureBindingSystemUnauthenticated?: (boolean|null);

                /** RBACBindingConfig enableInsecureBindingSystemAuthenticated */
                enableInsecureBindingSystemAuthenticated?: (boolean|null);
            }

            /** Represents a RBACBindingConfig. */
            class RBACBindingConfig implements IRBACBindingConfig {

                /**
                 * Constructs a new RBACBindingConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IRBACBindingConfig);

                /** RBACBindingConfig enableInsecureBindingSystemUnauthenticated. */
                public enableInsecureBindingSystemUnauthenticated?: (boolean|null);

                /** RBACBindingConfig enableInsecureBindingSystemAuthenticated. */
                public enableInsecureBindingSystemAuthenticated?: (boolean|null);

                /**
                 * Creates a new RBACBindingConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns RBACBindingConfig instance
                 */
                public static create(properties?: google.container.v1.IRBACBindingConfig): google.container.v1.RBACBindingConfig;

                /**
                 * Encodes the specified RBACBindingConfig message. Does not implicitly {@link google.container.v1.RBACBindingConfig.verify|verify} messages.
                 * @param message RBACBindingConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IRBACBindingConfig, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a RBACBindingConfig message.
                 * @param message Plain 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 RBACBindingConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns RBACBindingConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.RBACBindingConfig;

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

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

                /**
                 * Gets the default type url for RBACBindingConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a UserManagedKeysConfig. */
            interface IUserManagedKeysConfig {

                /** UserManagedKeysConfig clusterCa */
                clusterCa?: (string|null);

                /** UserManagedKeysConfig etcdApiCa */
                etcdApiCa?: (string|null);

                /** UserManagedKeysConfig etcdPeerCa */
                etcdPeerCa?: (string|null);

                /** UserManagedKeysConfig serviceAccountSigningKeys */
                serviceAccountSigningKeys?: (string[]|null);

                /** UserManagedKeysConfig serviceAccountVerificationKeys */
                serviceAccountVerificationKeys?: (string[]|null);

                /** UserManagedKeysConfig aggregationCa */
                aggregationCa?: (string|null);

                /** UserManagedKeysConfig controlPlaneDiskEncryptionKey */
                controlPlaneDiskEncryptionKey?: (string|null);

                /** UserManagedKeysConfig controlPlaneDiskEncryptionKeyVersions */
                controlPlaneDiskEncryptionKeyVersions?: (string[]|null);

                /** UserManagedKeysConfig gkeopsEtcdBackupEncryptionKey */
                gkeopsEtcdBackupEncryptionKey?: (string|null);
            }

            /** Represents a UserManagedKeysConfig. */
            class UserManagedKeysConfig implements IUserManagedKeysConfig {

                /**
                 * Constructs a new UserManagedKeysConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IUserManagedKeysConfig);

                /** UserManagedKeysConfig clusterCa. */
                public clusterCa: string;

                /** UserManagedKeysConfig etcdApiCa. */
                public etcdApiCa: string;

                /** UserManagedKeysConfig etcdPeerCa. */
                public etcdPeerCa: string;

                /** UserManagedKeysConfig serviceAccountSigningKeys. */
                public serviceAccountSigningKeys: string[];

                /** UserManagedKeysConfig serviceAccountVerificationKeys. */
                public serviceAccountVerificationKeys: string[];

                /** UserManagedKeysConfig aggregationCa. */
                public aggregationCa: string;

                /** UserManagedKeysConfig controlPlaneDiskEncryptionKey. */
                public controlPlaneDiskEncryptionKey: string;

                /** UserManagedKeysConfig controlPlaneDiskEncryptionKeyVersions. */
                public controlPlaneDiskEncryptionKeyVersions: string[];

                /** UserManagedKeysConfig gkeopsEtcdBackupEncryptionKey. */
                public gkeopsEtcdBackupEncryptionKey: string;

                /**
                 * Creates a new UserManagedKeysConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns UserManagedKeysConfig instance
                 */
                public static create(properties?: google.container.v1.IUserManagedKeysConfig): google.container.v1.UserManagedKeysConfig;

                /**
                 * Encodes the specified UserManagedKeysConfig message. Does not implicitly {@link google.container.v1.UserManagedKeysConfig.verify|verify} messages.
                 * @param message UserManagedKeysConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IUserManagedKeysConfig, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a UserManagedKeysConfig message.
                 * @param message Plain 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 UserManagedKeysConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns UserManagedKeysConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.UserManagedKeysConfig;

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

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

                /**
                 * Gets the default type url for UserManagedKeysConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of an AnonymousAuthenticationConfig. */
            interface IAnonymousAuthenticationConfig {

                /** AnonymousAuthenticationConfig mode */
                mode?: (google.container.v1.AnonymousAuthenticationConfig.Mode|keyof typeof google.container.v1.AnonymousAuthenticationConfig.Mode|null);
            }

            /** Represents an AnonymousAuthenticationConfig. */
            class AnonymousAuthenticationConfig implements IAnonymousAuthenticationConfig {

                /**
                 * Constructs a new AnonymousAuthenticationConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IAnonymousAuthenticationConfig);

                /** AnonymousAuthenticationConfig mode. */
                public mode: (google.container.v1.AnonymousAuthenticationConfig.Mode|keyof typeof google.container.v1.AnonymousAuthenticationConfig.Mode);

                /**
                 * Creates a new AnonymousAuthenticationConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns AnonymousAuthenticationConfig instance
                 */
                public static create(properties?: google.container.v1.IAnonymousAuthenticationConfig): google.container.v1.AnonymousAuthenticationConfig;

                /**
                 * Encodes the specified AnonymousAuthenticationConfig message. Does not implicitly {@link google.container.v1.AnonymousAuthenticationConfig.verify|verify} messages.
                 * @param message AnonymousAuthenticationConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IAnonymousAuthenticationConfig, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies an AnonymousAuthenticationConfig message.
                 * @param message Plain 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 AnonymousAuthenticationConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns AnonymousAuthenticationConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.AnonymousAuthenticationConfig;

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

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

                /**
                 * Gets the default type url for AnonymousAuthenticationConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace AnonymousAuthenticationConfig {

                /** Mode enum. */
                enum Mode {
                    MODE_UNSPECIFIED = 0,
                    ENABLED = 1,
                    LIMITED = 2
                }
            }

            /** Properties of a CompliancePostureConfig. */
            interface ICompliancePostureConfig {

                /** CompliancePostureConfig mode */
                mode?: (google.container.v1.CompliancePostureConfig.Mode|keyof typeof google.container.v1.CompliancePostureConfig.Mode|null);

                /** CompliancePostureConfig complianceStandards */
                complianceStandards?: (google.container.v1.CompliancePostureConfig.IComplianceStandard[]|null);
            }

            /** Represents a CompliancePostureConfig. */
            class CompliancePostureConfig implements ICompliancePostureConfig {

                /**
                 * Constructs a new CompliancePostureConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.ICompliancePostureConfig);

                /** CompliancePostureConfig mode. */
                public mode?: (google.container.v1.CompliancePostureConfig.Mode|keyof typeof google.container.v1.CompliancePostureConfig.Mode|null);

                /** CompliancePostureConfig complianceStandards. */
                public complianceStandards: google.container.v1.CompliancePostureConfig.IComplianceStandard[];

                /**
                 * Creates a new CompliancePostureConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns CompliancePostureConfig instance
                 */
                public static create(properties?: google.container.v1.ICompliancePostureConfig): google.container.v1.CompliancePostureConfig;

                /**
                 * Encodes the specified CompliancePostureConfig message. Does not implicitly {@link google.container.v1.CompliancePostureConfig.verify|verify} messages.
                 * @param message CompliancePostureConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.ICompliancePostureConfig, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a CompliancePostureConfig message.
                 * @param message Plain 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 CompliancePostureConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns CompliancePostureConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.CompliancePostureConfig;

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

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

                /**
                 * Gets the default type url for CompliancePostureConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace CompliancePostureConfig {

                /** Mode enum. */
                enum Mode {
                    MODE_UNSPECIFIED = 0,
                    DISABLED = 1,
                    ENABLED = 2
                }

                /** Properties of a ComplianceStandard. */
                interface IComplianceStandard {

                    /** ComplianceStandard standard */
                    standard?: (string|null);
                }

                /** Represents a ComplianceStandard. */
                class ComplianceStandard implements IComplianceStandard {

                    /**
                     * Constructs a new ComplianceStandard.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.container.v1.CompliancePostureConfig.IComplianceStandard);

                    /** ComplianceStandard standard. */
                    public standard?: (string|null);

                    /**
                     * Creates a new ComplianceStandard instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ComplianceStandard instance
                     */
                    public static create(properties?: google.container.v1.CompliancePostureConfig.IComplianceStandard): google.container.v1.CompliancePostureConfig.ComplianceStandard;

                    /**
                     * Encodes the specified ComplianceStandard message. Does not implicitly {@link google.container.v1.CompliancePostureConfig.ComplianceStandard.verify|verify} messages.
                     * @param message ComplianceStandard message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.container.v1.CompliancePostureConfig.IComplianceStandard, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ComplianceStandard message, length delimited. Does not implicitly {@link google.container.v1.CompliancePostureConfig.ComplianceStandard.verify|verify} messages.
                     * @param message ComplianceStandard message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.container.v1.CompliancePostureConfig.IComplianceStandard, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

                    /**
                     * Verifies a ComplianceStandard message.
                     * @param message Plain 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 ComplianceStandard message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ComplianceStandard
                     */
                    public static fromObject(object: { [k: string]: any }): google.container.v1.CompliancePostureConfig.ComplianceStandard;

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

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

                    /**
                     * Gets the default type url for ComplianceStandard
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }
            }

            /** Properties of a K8sBetaAPIConfig. */
            interface IK8sBetaAPIConfig {

                /** K8sBetaAPIConfig enabledApis */
                enabledApis?: (string[]|null);
            }

            /** Represents a K8sBetaAPIConfig. */
            class K8sBetaAPIConfig implements IK8sBetaAPIConfig {

                /**
                 * Constructs a new K8sBetaAPIConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IK8sBetaAPIConfig);

                /** K8sBetaAPIConfig enabledApis. */
                public enabledApis: string[];

                /**
                 * Creates a new K8sBetaAPIConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns K8sBetaAPIConfig instance
                 */
                public static create(properties?: google.container.v1.IK8sBetaAPIConfig): google.container.v1.K8sBetaAPIConfig;

                /**
                 * Encodes the specified K8sBetaAPIConfig message. Does not implicitly {@link google.container.v1.K8sBetaAPIConfig.verify|verify} messages.
                 * @param message K8sBetaAPIConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IK8sBetaAPIConfig, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a K8sBetaAPIConfig message.
                 * @param message Plain 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 K8sBetaAPIConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns K8sBetaAPIConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.K8sBetaAPIConfig;

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

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

                /**
                 * Gets the default type url for K8sBetaAPIConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a SecurityPostureConfig. */
            interface ISecurityPostureConfig {

                /** SecurityPostureConfig mode */
                mode?: (google.container.v1.SecurityPostureConfig.Mode|keyof typeof google.container.v1.SecurityPostureConfig.Mode|null);

                /** SecurityPostureConfig vulnerabilityMode */
                vulnerabilityMode?: (google.container.v1.SecurityPostureConfig.VulnerabilityMode|keyof typeof google.container.v1.SecurityPostureConfig.VulnerabilityMode|null);
            }

            /** Represents a SecurityPostureConfig. */
            class SecurityPostureConfig implements ISecurityPostureConfig {

                /**
                 * Constructs a new SecurityPostureConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.ISecurityPostureConfig);

                /** SecurityPostureConfig mode. */
                public mode?: (google.container.v1.SecurityPostureConfig.Mode|keyof typeof google.container.v1.SecurityPostureConfig.Mode|null);

                /** SecurityPostureConfig vulnerabilityMode. */
                public vulnerabilityMode?: (google.container.v1.SecurityPostureConfig.VulnerabilityMode|keyof typeof google.container.v1.SecurityPostureConfig.VulnerabilityMode|null);

                /**
                 * Creates a new SecurityPostureConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns SecurityPostureConfig instance
                 */
                public static create(properties?: google.container.v1.ISecurityPostureConfig): google.container.v1.SecurityPostureConfig;

                /**
                 * Encodes the specified SecurityPostureConfig message. Does not implicitly {@link google.container.v1.SecurityPostureConfig.verify|verify} messages.
                 * @param message SecurityPostureConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.ISecurityPostureConfig, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a SecurityPostureConfig message.
                 * @param message Plain 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 SecurityPostureConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns SecurityPostureConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.SecurityPostureConfig;

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

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

                /**
                 * Gets the default type url for SecurityPostureConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace SecurityPostureConfig {

                /** Mode enum. */
                enum Mode {
                    MODE_UNSPECIFIED = 0,
                    DISABLED = 1,
                    BASIC = 2,
                    ENTERPRISE = 3
                }

                /** VulnerabilityMode enum. */
                enum VulnerabilityMode {
                    VULNERABILITY_MODE_UNSPECIFIED = 0,
                    VULNERABILITY_DISABLED = 1,
                    VULNERABILITY_BASIC = 2,
                    VULNERABILITY_ENTERPRISE = 3
                }
            }

            /** Properties of a NodePoolAutoConfig. */
            interface INodePoolAutoConfig {

                /** NodePoolAutoConfig networkTags */
                networkTags?: (google.container.v1.INetworkTags|null);

                /** NodePoolAutoConfig resourceManagerTags */
                resourceManagerTags?: (google.container.v1.IResourceManagerTags|null);

                /** NodePoolAutoConfig nodeKubeletConfig */
                nodeKubeletConfig?: (google.container.v1.INodeKubeletConfig|null);

                /** NodePoolAutoConfig linuxNodeConfig */
                linuxNodeConfig?: (google.container.v1.ILinuxNodeConfig|null);
            }

            /** Represents a NodePoolAutoConfig. */
            class NodePoolAutoConfig implements INodePoolAutoConfig {

                /**
                 * Constructs a new NodePoolAutoConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.INodePoolAutoConfig);

                /** NodePoolAutoConfig networkTags. */
                public networkTags?: (google.container.v1.INetworkTags|null);

                /** NodePoolAutoConfig resourceManagerTags. */
                public resourceManagerTags?: (google.container.v1.IResourceManagerTags|null);

                /** NodePoolAutoConfig nodeKubeletConfig. */
                public nodeKubeletConfig?: (google.container.v1.INodeKubeletConfig|null);

                /** NodePoolAutoConfig linuxNodeConfig. */
                public linuxNodeConfig?: (google.container.v1.ILinuxNodeConfig|null);

                /**
                 * Creates a new NodePoolAutoConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns NodePoolAutoConfig instance
                 */
                public static create(properties?: google.container.v1.INodePoolAutoConfig): google.container.v1.NodePoolAutoConfig;

                /**
                 * Encodes the specified NodePoolAutoConfig message. Does not implicitly {@link google.container.v1.NodePoolAutoConfig.verify|verify} messages.
                 * @param message NodePoolAutoConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.INodePoolAutoConfig, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a NodePoolAutoConfig message.
                 * @param message Plain 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 NodePoolAutoConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns NodePoolAutoConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.NodePoolAutoConfig;

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

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

                /**
                 * Gets the default type url for NodePoolAutoConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a NodePoolDefaults. */
            interface INodePoolDefaults {

                /** NodePoolDefaults nodeConfigDefaults */
                nodeConfigDefaults?: (google.container.v1.INodeConfigDefaults|null);
            }

            /** Represents a NodePoolDefaults. */
            class NodePoolDefaults implements INodePoolDefaults {

                /**
                 * Constructs a new NodePoolDefaults.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.INodePoolDefaults);

                /** NodePoolDefaults nodeConfigDefaults. */
                public nodeConfigDefaults?: (google.container.v1.INodeConfigDefaults|null);

                /**
                 * Creates a new NodePoolDefaults instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns NodePoolDefaults instance
                 */
                public static create(properties?: google.container.v1.INodePoolDefaults): google.container.v1.NodePoolDefaults;

                /**
                 * Encodes the specified NodePoolDefaults message. Does not implicitly {@link google.container.v1.NodePoolDefaults.verify|verify} messages.
                 * @param message NodePoolDefaults message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.INodePoolDefaults, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a NodePoolDefaults message.
                 * @param message Plain 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 NodePoolDefaults message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns NodePoolDefaults
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.NodePoolDefaults;

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

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

                /**
                 * Gets the default type url for NodePoolDefaults
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a NodeConfigDefaults. */
            interface INodeConfigDefaults {

                /** NodeConfigDefaults gcfsConfig */
                gcfsConfig?: (google.container.v1.IGcfsConfig|null);

                /** NodeConfigDefaults loggingConfig */
                loggingConfig?: (google.container.v1.INodePoolLoggingConfig|null);

                /** NodeConfigDefaults containerdConfig */
                containerdConfig?: (google.container.v1.IContainerdConfig|null);

                /** NodeConfigDefaults nodeKubeletConfig */
                nodeKubeletConfig?: (google.container.v1.INodeKubeletConfig|null);
            }

            /** Represents a NodeConfigDefaults. */
            class NodeConfigDefaults implements INodeConfigDefaults {

                /**
                 * Constructs a new NodeConfigDefaults.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.INodeConfigDefaults);

                /** NodeConfigDefaults gcfsConfig. */
                public gcfsConfig?: (google.container.v1.IGcfsConfig|null);

                /** NodeConfigDefaults loggingConfig. */
                public loggingConfig?: (google.container.v1.INodePoolLoggingConfig|null);

                /** NodeConfigDefaults containerdConfig. */
                public containerdConfig?: (google.container.v1.IContainerdConfig|null);

                /** NodeConfigDefaults nodeKubeletConfig. */
                public nodeKubeletConfig?: (google.container.v1.INodeKubeletConfig|null);

                /**
                 * Creates a new NodeConfigDefaults instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns NodeConfigDefaults instance
                 */
                public static create(properties?: google.container.v1.INodeConfigDefaults): google.container.v1.NodeConfigDefaults;

                /**
                 * Encodes the specified NodeConfigDefaults message. Does not implicitly {@link google.container.v1.NodeConfigDefaults.verify|verify} messages.
                 * @param message NodeConfigDefaults message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.INodeConfigDefaults, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a NodeConfigDefaults message.
                 * @param message Plain 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 NodeConfigDefaults message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns NodeConfigDefaults
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.NodeConfigDefaults;

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

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

                /**
                 * Gets the default type url for NodeConfigDefaults
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a ClusterUpdate. */
            interface IClusterUpdate {

                /** ClusterUpdate desiredNodeVersion */
                desiredNodeVersion?: (string|null);

                /** ClusterUpdate desiredMonitoringService */
                desiredMonitoringService?: (string|null);

                /** ClusterUpdate desiredAddonsConfig */
                desiredAddonsConfig?: (google.container.v1.IAddonsConfig|null);

                /** ClusterUpdate desiredNodePoolId */
                desiredNodePoolId?: (string|null);

                /** ClusterUpdate desiredImageType */
                desiredImageType?: (string|null);

                /** ClusterUpdate desiredDatabaseEncryption */
                desiredDatabaseEncryption?: (google.container.v1.IDatabaseEncryption|null);

                /** ClusterUpdate desiredWorkloadIdentityConfig */
                desiredWorkloadIdentityConfig?: (google.container.v1.IWorkloadIdentityConfig|null);

                /** ClusterUpdate desiredMeshCertificates */
                desiredMeshCertificates?: (google.container.v1.IMeshCertificates|null);

                /** ClusterUpdate desiredShieldedNodes */
                desiredShieldedNodes?: (google.container.v1.IShieldedNodes|null);

                /** ClusterUpdate desiredCostManagementConfig */
                desiredCostManagementConfig?: (google.container.v1.ICostManagementConfig|null);

                /** ClusterUpdate desiredDnsConfig */
                desiredDnsConfig?: (google.container.v1.IDNSConfig|null);

                /** ClusterUpdate desiredNodePoolAutoscaling */
                desiredNodePoolAutoscaling?: (google.container.v1.INodePoolAutoscaling|null);

                /** ClusterUpdate desiredLocations */
                desiredLocations?: (string[]|null);

                /** ClusterUpdate desiredMasterAuthorizedNetworksConfig */
                desiredMasterAuthorizedNetworksConfig?: (google.container.v1.IMasterAuthorizedNetworksConfig|null);

                /** ClusterUpdate desiredClusterAutoscaling */
                desiredClusterAutoscaling?: (google.container.v1.IClusterAutoscaling|null);

                /** ClusterUpdate desiredBinaryAuthorization */
                desiredBinaryAuthorization?: (google.container.v1.IBinaryAuthorization|null);

                /** ClusterUpdate desiredLoggingService */
                desiredLoggingService?: (string|null);

                /** ClusterUpdate desiredResourceUsageExportConfig */
                desiredResourceUsageExportConfig?: (google.container.v1.IResourceUsageExportConfig|null);

                /** ClusterUpdate desiredVerticalPodAutoscaling */
                desiredVerticalPodAutoscaling?: (google.container.v1.IVerticalPodAutoscaling|null);

                /** ClusterUpdate desiredPrivateClusterConfig */
                desiredPrivateClusterConfig?: (google.container.v1.IPrivateClusterConfig|null);

                /** ClusterUpdate desiredIntraNodeVisibilityConfig */
                desiredIntraNodeVisibilityConfig?: (google.container.v1.IIntraNodeVisibilityConfig|null);

                /** ClusterUpdate desiredDefaultSnatStatus */
                desiredDefaultSnatStatus?: (google.container.v1.IDefaultSnatStatus|null);

                /** ClusterUpdate desiredReleaseChannel */
                desiredReleaseChannel?: (google.container.v1.IReleaseChannel|null);

                /** ClusterUpdate desiredL4ilbSubsettingConfig */
                desiredL4ilbSubsettingConfig?: (google.container.v1.IILBSubsettingConfig|null);

                /** ClusterUpdate desiredDatapathProvider */
                desiredDatapathProvider?: (google.container.v1.DatapathProvider|keyof typeof google.container.v1.DatapathProvider|null);

                /** ClusterUpdate desiredPrivateIpv6GoogleAccess */
                desiredPrivateIpv6GoogleAccess?: (google.container.v1.PrivateIPv6GoogleAccess|keyof typeof google.container.v1.PrivateIPv6GoogleAccess|null);

                /** ClusterUpdate desiredNotificationConfig */
                desiredNotificationConfig?: (google.container.v1.INotificationConfig|null);

                /** ClusterUpdate desiredAuthenticatorGroupsConfig */
                desiredAuthenticatorGroupsConfig?: (google.container.v1.IAuthenticatorGroupsConfig|null);

                /** ClusterUpdate desiredLoggingConfig */
                desiredLoggingConfig?: (google.container.v1.ILoggingConfig|null);

                /** ClusterUpdate desiredMonitoringConfig */
                desiredMonitoringConfig?: (google.container.v1.IMonitoringConfig|null);

                /** ClusterUpdate desiredIdentityServiceConfig */
                desiredIdentityServiceConfig?: (google.container.v1.IIdentityServiceConfig|null);

                /** ClusterUpdate desiredServiceExternalIpsConfig */
                desiredServiceExternalIpsConfig?: (google.container.v1.IServiceExternalIPsConfig|null);

                /** ClusterUpdate desiredEnablePrivateEndpoint */
                desiredEnablePrivateEndpoint?: (boolean|null);

                /** ClusterUpdate desiredDefaultEnablePrivateNodes */
                desiredDefaultEnablePrivateNodes?: (boolean|null);

                /** ClusterUpdate desiredControlPlaneEndpointsConfig */
                desiredControlPlaneEndpointsConfig?: (google.container.v1.IControlPlaneEndpointsConfig|null);

                /** ClusterUpdate desiredMasterVersion */
                desiredMasterVersion?: (string|null);

                /** ClusterUpdate desiredGcfsConfig */
                desiredGcfsConfig?: (google.container.v1.IGcfsConfig|null);

                /** ClusterUpdate desiredNodePoolAutoConfigNetworkTags */
                desiredNodePoolAutoConfigNetworkTags?: (google.container.v1.INetworkTags|null);

                /** ClusterUpdate desiredPodAutoscaling */
                desiredPodAutoscaling?: (google.container.v1.IPodAutoscaling|null);

                /** ClusterUpdate desiredGatewayApiConfig */
                desiredGatewayApiConfig?: (google.container.v1.IGatewayAPIConfig|null);

                /** ClusterUpdate etag */
                etag?: (string|null);

                /** ClusterUpdate desiredNodePoolLoggingConfig */
                desiredNodePoolLoggingConfig?: (google.container.v1.INodePoolLoggingConfig|null);

                /** ClusterUpdate desiredFleet */
                desiredFleet?: (google.container.v1.IFleet|null);

                /** ClusterUpdate desiredStackType */
                desiredStackType?: (google.container.v1.StackType|keyof typeof google.container.v1.StackType|null);

                /** ClusterUpdate additionalPodRangesConfig */
                additionalPodRangesConfig?: (google.container.v1.IAdditionalPodRangesConfig|null);

                /** ClusterUpdate removedAdditionalPodRangesConfig */
                removedAdditionalPodRangesConfig?: (google.container.v1.IAdditionalPodRangesConfig|null);

                /** ClusterUpdate enableK8sBetaApis */
                enableK8sBetaApis?: (google.container.v1.IK8sBetaAPIConfig|null);

                /** ClusterUpdate desiredSecurityPostureConfig */
                desiredSecurityPostureConfig?: (google.container.v1.ISecurityPostureConfig|null);

                /** ClusterUpdate desiredNetworkPerformanceConfig */
                desiredNetworkPerformanceConfig?: (google.container.v1.NetworkConfig.IClusterNetworkPerformanceConfig|null);

                /** ClusterUpdate desiredEnableFqdnNetworkPolicy */
                desiredEnableFqdnNetworkPolicy?: (boolean|null);

                /** ClusterUpdate desiredAutopilotWorkloadPolicyConfig */
                desiredAutopilotWorkloadPolicyConfig?: (google.container.v1.IWorkloadPolicyConfig|null);

                /** ClusterUpdate desiredK8sBetaApis */
                desiredK8sBetaApis?: (google.container.v1.IK8sBetaAPIConfig|null);

                /** ClusterUpdate desiredContainerdConfig */
                desiredContainerdConfig?: (google.container.v1.IContainerdConfig|null);

                /** ClusterUpdate desiredEnableMultiNetworking */
                desiredEnableMultiNetworking?: (boolean|null);

                /** ClusterUpdate desiredNodePoolAutoConfigResourceManagerTags */
                desiredNodePoolAutoConfigResourceManagerTags?: (google.container.v1.IResourceManagerTags|null);

                /** ClusterUpdate desiredInTransitEncryptionConfig */
                desiredInTransitEncryptionConfig?: (google.container.v1.InTransitEncryptionConfig|keyof typeof google.container.v1.InTransitEncryptionConfig|null);

                /** ClusterUpdate desiredEnableCiliumClusterwideNetworkPolicy */
                desiredEnableCiliumClusterwideNetworkPolicy?: (boolean|null);

                /** ClusterUpdate desiredSecretManagerConfig */
                desiredSecretManagerConfig?: (google.container.v1.ISecretManagerConfig|null);

                /** ClusterUpdate desiredCompliancePostureConfig */
                desiredCompliancePostureConfig?: (google.container.v1.ICompliancePostureConfig|null);

                /** ClusterUpdate desiredNodeKubeletConfig */
                desiredNodeKubeletConfig?: (google.container.v1.INodeKubeletConfig|null);

                /** ClusterUpdate desiredNodePoolAutoConfigKubeletConfig */
                desiredNodePoolAutoConfigKubeletConfig?: (google.container.v1.INodeKubeletConfig|null);

                /** ClusterUpdate userManagedKeysConfig */
                userManagedKeysConfig?: (google.container.v1.IUserManagedKeysConfig|null);

                /** ClusterUpdate desiredRbacBindingConfig */
                desiredRbacBindingConfig?: (google.container.v1.IRBACBindingConfig|null);

                /** ClusterUpdate desiredAdditionalIpRangesConfig */
                desiredAdditionalIpRangesConfig?: (google.container.v1.IDesiredAdditionalIPRangesConfig|null);

                /** ClusterUpdate desiredEnterpriseConfig */
                desiredEnterpriseConfig?: (google.container.v1.IDesiredEnterpriseConfig|null);

                /** ClusterUpdate desiredAutoIpamConfig */
                desiredAutoIpamConfig?: (google.container.v1.IAutoIpamConfig|null);

                /** ClusterUpdate desiredDisableL4LbFirewallReconciliation */
                desiredDisableL4LbFirewallReconciliation?: (boolean|null);

                /** ClusterUpdate desiredNodePoolAutoConfigLinuxNodeConfig */
                desiredNodePoolAutoConfigLinuxNodeConfig?: (google.container.v1.ILinuxNodeConfig|null);

                /** ClusterUpdate desiredUserManagedKeysConfig */
                desiredUserManagedKeysConfig?: (google.container.v1.IUserManagedKeysConfig|null);

                /** ClusterUpdate desiredAnonymousAuthenticationConfig */
                desiredAnonymousAuthenticationConfig?: (google.container.v1.IAnonymousAuthenticationConfig|null);

                /** ClusterUpdate gkeAutoUpgradeConfig */
                gkeAutoUpgradeConfig?: (google.container.v1.IGkeAutoUpgradeConfig|null);

                /** ClusterUpdate desiredNetworkTierConfig */
                desiredNetworkTierConfig?: (google.container.v1.INetworkTierConfig|null);

                /** ClusterUpdate desiredSecretSyncConfig */
                desiredSecretSyncConfig?: (google.container.v1.ISecretSyncConfig|null);

                /** ClusterUpdate desiredPrivilegedAdmissionConfig */
                desiredPrivilegedAdmissionConfig?: (google.container.v1.IPrivilegedAdmissionConfig|null);

                /** ClusterUpdate desiredControlPlaneEgress */
                desiredControlPlaneEgress?: (google.container.v1.IControlPlaneEgress|null);

                /** ClusterUpdate desiredManagedOpentelemetryConfig */
                desiredManagedOpentelemetryConfig?: (google.container.v1.IManagedOpenTelemetryConfig|null);

                /** ClusterUpdate desiredAutopilotClusterPolicyConfig */
                desiredAutopilotClusterPolicyConfig?: (google.container.v1.IClusterPolicyConfig|null);

                /** ClusterUpdate desiredManagedMachineLearningDiagnosticsConfig */
                desiredManagedMachineLearningDiagnosticsConfig?: (google.container.v1.IManagedMachineLearningDiagnosticsConfig|null);

                /** ClusterUpdate desiredNodeCreationConfig */
                desiredNodeCreationConfig?: (google.container.v1.INodeCreationConfig|null);
            }

            /** Represents a ClusterUpdate. */
            class ClusterUpdate implements IClusterUpdate {

                /**
                 * Constructs a new ClusterUpdate.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IClusterUpdate);

                /** ClusterUpdate desiredNodeVersion. */
                public desiredNodeVersion: string;

                /** ClusterUpdate desiredMonitoringService. */
                public desiredMonitoringService: string;

                /** ClusterUpdate desiredAddonsConfig. */
                public desiredAddonsConfig?: (google.container.v1.IAddonsConfig|null);

                /** ClusterUpdate desiredNodePoolId. */
                public desiredNodePoolId: string;

                /** ClusterUpdate desiredImageType. */
                public desiredImageType: string;

                /** ClusterUpdate desiredDatabaseEncryption. */
                public desiredDatabaseEncryption?: (google.container.v1.IDatabaseEncryption|null);

                /** ClusterUpdate desiredWorkloadIdentityConfig. */
                public desiredWorkloadIdentityConfig?: (google.container.v1.IWorkloadIdentityConfig|null);

                /** ClusterUpdate desiredMeshCertificates. */
                public desiredMeshCertificates?: (google.container.v1.IMeshCertificates|null);

                /** ClusterUpdate desiredShieldedNodes. */
                public desiredShieldedNodes?: (google.container.v1.IShieldedNodes|null);

                /** ClusterUpdate desiredCostManagementConfig. */
                public desiredCostManagementConfig?: (google.container.v1.ICostManagementConfig|null);

                /** ClusterUpdate desiredDnsConfig. */
                public desiredDnsConfig?: (google.container.v1.IDNSConfig|null);

                /** ClusterUpdate desiredNodePoolAutoscaling. */
                public desiredNodePoolAutoscaling?: (google.container.v1.INodePoolAutoscaling|null);

                /** ClusterUpdate desiredLocations. */
                public desiredLocations: string[];

                /** ClusterUpdate desiredMasterAuthorizedNetworksConfig. */
                public desiredMasterAuthorizedNetworksConfig?: (google.container.v1.IMasterAuthorizedNetworksConfig|null);

                /** ClusterUpdate desiredClusterAutoscaling. */
                public desiredClusterAutoscaling?: (google.container.v1.IClusterAutoscaling|null);

                /** ClusterUpdate desiredBinaryAuthorization. */
                public desiredBinaryAuthorization?: (google.container.v1.IBinaryAuthorization|null);

                /** ClusterUpdate desiredLoggingService. */
                public desiredLoggingService: string;

                /** ClusterUpdate desiredResourceUsageExportConfig. */
                public desiredResourceUsageExportConfig?: (google.container.v1.IResourceUsageExportConfig|null);

                /** ClusterUpdate desiredVerticalPodAutoscaling. */
                public desiredVerticalPodAutoscaling?: (google.container.v1.IVerticalPodAutoscaling|null);

                /** ClusterUpdate desiredPrivateClusterConfig. */
                public desiredPrivateClusterConfig?: (google.container.v1.IPrivateClusterConfig|null);

                /** ClusterUpdate desiredIntraNodeVisibilityConfig. */
                public desiredIntraNodeVisibilityConfig?: (google.container.v1.IIntraNodeVisibilityConfig|null);

                /** ClusterUpdate desiredDefaultSnatStatus. */
                public desiredDefaultSnatStatus?: (google.container.v1.IDefaultSnatStatus|null);

                /** ClusterUpdate desiredReleaseChannel. */
                public desiredReleaseChannel?: (google.container.v1.IReleaseChannel|null);

                /** ClusterUpdate desiredL4ilbSubsettingConfig. */
                public desiredL4ilbSubsettingConfig?: (google.container.v1.IILBSubsettingConfig|null);

                /** ClusterUpdate desiredDatapathProvider. */
                public desiredDatapathProvider: (google.container.v1.DatapathProvider|keyof typeof google.container.v1.DatapathProvider);

                /** ClusterUpdate desiredPrivateIpv6GoogleAccess. */
                public desiredPrivateIpv6GoogleAccess: (google.container.v1.PrivateIPv6GoogleAccess|keyof typeof google.container.v1.PrivateIPv6GoogleAccess);

                /** ClusterUpdate desiredNotificationConfig. */
                public desiredNotificationConfig?: (google.container.v1.INotificationConfig|null);

                /** ClusterUpdate desiredAuthenticatorGroupsConfig. */
                public desiredAuthenticatorGroupsConfig?: (google.container.v1.IAuthenticatorGroupsConfig|null);

                /** ClusterUpdate desiredLoggingConfig. */
                public desiredLoggingConfig?: (google.container.v1.ILoggingConfig|null);

                /** ClusterUpdate desiredMonitoringConfig. */
                public desiredMonitoringConfig?: (google.container.v1.IMonitoringConfig|null);

                /** ClusterUpdate desiredIdentityServiceConfig. */
                public desiredIdentityServiceConfig?: (google.container.v1.IIdentityServiceConfig|null);

                /** ClusterUpdate desiredServiceExternalIpsConfig. */
                public desiredServiceExternalIpsConfig?: (google.container.v1.IServiceExternalIPsConfig|null);

                /** ClusterUpdate desiredEnablePrivateEndpoint. */
                public desiredEnablePrivateEndpoint?: (boolean|null);

                /** ClusterUpdate desiredDefaultEnablePrivateNodes. */
                public desiredDefaultEnablePrivateNodes?: (boolean|null);

                /** ClusterUpdate desiredControlPlaneEndpointsConfig. */
                public desiredControlPlaneEndpointsConfig?: (google.container.v1.IControlPlaneEndpointsConfig|null);

                /** ClusterUpdate desiredMasterVersion. */
                public desiredMasterVersion: string;

                /** ClusterUpdate desiredGcfsConfig. */
                public desiredGcfsConfig?: (google.container.v1.IGcfsConfig|null);

                /** ClusterUpdate desiredNodePoolAutoConfigNetworkTags. */
                public desiredNodePoolAutoConfigNetworkTags?: (google.container.v1.INetworkTags|null);

                /** ClusterUpdate desiredPodAutoscaling. */
                public desiredPodAutoscaling?: (google.container.v1.IPodAutoscaling|null);

                /** ClusterUpdate desiredGatewayApiConfig. */
                public desiredGatewayApiConfig?: (google.container.v1.IGatewayAPIConfig|null);

                /** ClusterUpdate etag. */
                public etag: string;

                /** ClusterUpdate desiredNodePoolLoggingConfig. */
                public desiredNodePoolLoggingConfig?: (google.container.v1.INodePoolLoggingConfig|null);

                /** ClusterUpdate desiredFleet. */
                public desiredFleet?: (google.container.v1.IFleet|null);

                /** ClusterUpdate desiredStackType. */
                public desiredStackType: (google.container.v1.StackType|keyof typeof google.container.v1.StackType);

                /** ClusterUpdate additionalPodRangesConfig. */
                public additionalPodRangesConfig?: (google.container.v1.IAdditionalPodRangesConfig|null);

                /** ClusterUpdate removedAdditionalPodRangesConfig. */
                public removedAdditionalPodRangesConfig?: (google.container.v1.IAdditionalPodRangesConfig|null);

                /** ClusterUpdate enableK8sBetaApis. */
                public enableK8sBetaApis?: (google.container.v1.IK8sBetaAPIConfig|null);

                /** ClusterUpdate desiredSecurityPostureConfig. */
                public desiredSecurityPostureConfig?: (google.container.v1.ISecurityPostureConfig|null);

                /** ClusterUpdate desiredNetworkPerformanceConfig. */
                public desiredNetworkPerformanceConfig?: (google.container.v1.NetworkConfig.IClusterNetworkPerformanceConfig|null);

                /** ClusterUpdate desiredEnableFqdnNetworkPolicy. */
                public desiredEnableFqdnNetworkPolicy?: (boolean|null);

                /** ClusterUpdate desiredAutopilotWorkloadPolicyConfig. */
                public desiredAutopilotWorkloadPolicyConfig?: (google.container.v1.IWorkloadPolicyConfig|null);

                /** ClusterUpdate desiredK8sBetaApis. */
                public desiredK8sBetaApis?: (google.container.v1.IK8sBetaAPIConfig|null);

                /** ClusterUpdate desiredContainerdConfig. */
                public desiredContainerdConfig?: (google.container.v1.IContainerdConfig|null);

                /** ClusterUpdate desiredEnableMultiNetworking. */
                public desiredEnableMultiNetworking?: (boolean|null);

                /** ClusterUpdate desiredNodePoolAutoConfigResourceManagerTags. */
                public desiredNodePoolAutoConfigResourceManagerTags?: (google.container.v1.IResourceManagerTags|null);

                /** ClusterUpdate desiredInTransitEncryptionConfig. */
                public desiredInTransitEncryptionConfig?: (google.container.v1.InTransitEncryptionConfig|keyof typeof google.container.v1.InTransitEncryptionConfig|null);

                /** ClusterUpdate desiredEnableCiliumClusterwideNetworkPolicy. */
                public desiredEnableCiliumClusterwideNetworkPolicy?: (boolean|null);

                /** ClusterUpdate desiredSecretManagerConfig. */
                public desiredSecretManagerConfig?: (google.container.v1.ISecretManagerConfig|null);

                /** ClusterUpdate desiredCompliancePostureConfig. */
                public desiredCompliancePostureConfig?: (google.container.v1.ICompliancePostureConfig|null);

                /** ClusterUpdate desiredNodeKubeletConfig. */
                public desiredNodeKubeletConfig?: (google.container.v1.INodeKubeletConfig|null);

                /** ClusterUpdate desiredNodePoolAutoConfigKubeletConfig. */
                public desiredNodePoolAutoConfigKubeletConfig?: (google.container.v1.INodeKubeletConfig|null);

                /** ClusterUpdate userManagedKeysConfig. */
                public userManagedKeysConfig?: (google.container.v1.IUserManagedKeysConfig|null);

                /** ClusterUpdate desiredRbacBindingConfig. */
                public desiredRbacBindingConfig?: (google.container.v1.IRBACBindingConfig|null);

                /** ClusterUpdate desiredAdditionalIpRangesConfig. */
                public desiredAdditionalIpRangesConfig?: (google.container.v1.IDesiredAdditionalIPRangesConfig|null);

                /** ClusterUpdate desiredEnterpriseConfig. */
                public desiredEnterpriseConfig?: (google.container.v1.IDesiredEnterpriseConfig|null);

                /** ClusterUpdate desiredAutoIpamConfig. */
                public desiredAutoIpamConfig?: (google.container.v1.IAutoIpamConfig|null);

                /** ClusterUpdate desiredDisableL4LbFirewallReconciliation. */
                public desiredDisableL4LbFirewallReconciliation?: (boolean|null);

                /** ClusterUpdate desiredNodePoolAutoConfigLinuxNodeConfig. */
                public desiredNodePoolAutoConfigLinuxNodeConfig?: (google.container.v1.ILinuxNodeConfig|null);

                /** ClusterUpdate desiredUserManagedKeysConfig. */
                public desiredUserManagedKeysConfig?: (google.container.v1.IUserManagedKeysConfig|null);

                /** ClusterUpdate desiredAnonymousAuthenticationConfig. */
                public desiredAnonymousAuthenticationConfig?: (google.container.v1.IAnonymousAuthenticationConfig|null);

                /** ClusterUpdate gkeAutoUpgradeConfig. */
                public gkeAutoUpgradeConfig?: (google.container.v1.IGkeAutoUpgradeConfig|null);

                /** ClusterUpdate desiredNetworkTierConfig. */
                public desiredNetworkTierConfig?: (google.container.v1.INetworkTierConfig|null);

                /** ClusterUpdate desiredSecretSyncConfig. */
                public desiredSecretSyncConfig?: (google.container.v1.ISecretSyncConfig|null);

                /** ClusterUpdate desiredPrivilegedAdmissionConfig. */
                public desiredPrivilegedAdmissionConfig?: (google.container.v1.IPrivilegedAdmissionConfig|null);

                /** ClusterUpdate desiredControlPlaneEgress. */
                public desiredControlPlaneEgress?: (google.container.v1.IControlPlaneEgress|null);

                /** ClusterUpdate desiredManagedOpentelemetryConfig. */
                public desiredManagedOpentelemetryConfig?: (google.container.v1.IManagedOpenTelemetryConfig|null);

                /** ClusterUpdate desiredAutopilotClusterPolicyConfig. */
                public desiredAutopilotClusterPolicyConfig?: (google.container.v1.IClusterPolicyConfig|null);

                /** ClusterUpdate desiredManagedMachineLearningDiagnosticsConfig. */
                public desiredManagedMachineLearningDiagnosticsConfig?: (google.container.v1.IManagedMachineLearningDiagnosticsConfig|null);

                /** ClusterUpdate desiredNodeCreationConfig. */
                public desiredNodeCreationConfig?: (google.container.v1.INodeCreationConfig|null);

                /**
                 * Creates a new ClusterUpdate instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ClusterUpdate instance
                 */
                public static create(properties?: google.container.v1.IClusterUpdate): google.container.v1.ClusterUpdate;

                /**
                 * Encodes the specified ClusterUpdate message. Does not implicitly {@link google.container.v1.ClusterUpdate.verify|verify} messages.
                 * @param message ClusterUpdate message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IClusterUpdate, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a ClusterUpdate message.
                 * @param message Plain 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 ClusterUpdate message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ClusterUpdate
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.ClusterUpdate;

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

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

                /**
                 * Gets the default type url for ClusterUpdate
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of an AdditionalPodRangesConfig. */
            interface IAdditionalPodRangesConfig {

                /** AdditionalPodRangesConfig podRangeNames */
                podRangeNames?: (string[]|null);

                /** AdditionalPodRangesConfig podRangeInfo */
                podRangeInfo?: (google.container.v1.IRangeInfo[]|null);
            }

            /** Represents an AdditionalPodRangesConfig. */
            class AdditionalPodRangesConfig implements IAdditionalPodRangesConfig {

                /**
                 * Constructs a new AdditionalPodRangesConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IAdditionalPodRangesConfig);

                /** AdditionalPodRangesConfig podRangeNames. */
                public podRangeNames: string[];

                /** AdditionalPodRangesConfig podRangeInfo. */
                public podRangeInfo: google.container.v1.IRangeInfo[];

                /**
                 * Creates a new AdditionalPodRangesConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns AdditionalPodRangesConfig instance
                 */
                public static create(properties?: google.container.v1.IAdditionalPodRangesConfig): google.container.v1.AdditionalPodRangesConfig;

                /**
                 * Encodes the specified AdditionalPodRangesConfig message. Does not implicitly {@link google.container.v1.AdditionalPodRangesConfig.verify|verify} messages.
                 * @param message AdditionalPodRangesConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IAdditionalPodRangesConfig, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies an AdditionalPodRangesConfig message.
                 * @param message Plain 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 AdditionalPodRangesConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns AdditionalPodRangesConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.AdditionalPodRangesConfig;

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

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

                /**
                 * Gets the default type url for AdditionalPodRangesConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of an AdditionalIPRangesConfig. */
            interface IAdditionalIPRangesConfig {

                /** AdditionalIPRangesConfig subnetwork */
                subnetwork?: (string|null);

                /** AdditionalIPRangesConfig podIpv4RangeNames */
                podIpv4RangeNames?: (string[]|null);

                /** AdditionalIPRangesConfig status */
                status?: (google.container.v1.AdditionalIPRangesConfig.Status|keyof typeof google.container.v1.AdditionalIPRangesConfig.Status|null);
            }

            /** Represents an AdditionalIPRangesConfig. */
            class AdditionalIPRangesConfig implements IAdditionalIPRangesConfig {

                /**
                 * Constructs a new AdditionalIPRangesConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IAdditionalIPRangesConfig);

                /** AdditionalIPRangesConfig subnetwork. */
                public subnetwork: string;

                /** AdditionalIPRangesConfig podIpv4RangeNames. */
                public podIpv4RangeNames: string[];

                /** AdditionalIPRangesConfig status. */
                public status: (google.container.v1.AdditionalIPRangesConfig.Status|keyof typeof google.container.v1.AdditionalIPRangesConfig.Status);

                /**
                 * Creates a new AdditionalIPRangesConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns AdditionalIPRangesConfig instance
                 */
                public static create(properties?: google.container.v1.IAdditionalIPRangesConfig): google.container.v1.AdditionalIPRangesConfig;

                /**
                 * Encodes the specified AdditionalIPRangesConfig message. Does not implicitly {@link google.container.v1.AdditionalIPRangesConfig.verify|verify} messages.
                 * @param message AdditionalIPRangesConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IAdditionalIPRangesConfig, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies an AdditionalIPRangesConfig message.
                 * @param message Plain 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 AdditionalIPRangesConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns AdditionalIPRangesConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.AdditionalIPRangesConfig;

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

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

                /**
                 * Gets the default type url for AdditionalIPRangesConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace AdditionalIPRangesConfig {

                /** Status enum. */
                enum Status {
                    STATUS_UNSPECIFIED = 0,
                    ACTIVE = 1,
                    DRAINING = 2
                }
            }

            /** Properties of a DesiredAdditionalIPRangesConfig. */
            interface IDesiredAdditionalIPRangesConfig {

                /** DesiredAdditionalIPRangesConfig additionalIpRangesConfigs */
                additionalIpRangesConfigs?: (google.container.v1.IAdditionalIPRangesConfig[]|null);
            }

            /** Represents a DesiredAdditionalIPRangesConfig. */
            class DesiredAdditionalIPRangesConfig implements IDesiredAdditionalIPRangesConfig {

                /**
                 * Constructs a new DesiredAdditionalIPRangesConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IDesiredAdditionalIPRangesConfig);

                /** DesiredAdditionalIPRangesConfig additionalIpRangesConfigs. */
                public additionalIpRangesConfigs: google.container.v1.IAdditionalIPRangesConfig[];

                /**
                 * Creates a new DesiredAdditionalIPRangesConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns DesiredAdditionalIPRangesConfig instance
                 */
                public static create(properties?: google.container.v1.IDesiredAdditionalIPRangesConfig): google.container.v1.DesiredAdditionalIPRangesConfig;

                /**
                 * Encodes the specified DesiredAdditionalIPRangesConfig message. Does not implicitly {@link google.container.v1.DesiredAdditionalIPRangesConfig.verify|verify} messages.
                 * @param message DesiredAdditionalIPRangesConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IDesiredAdditionalIPRangesConfig, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a DesiredAdditionalIPRangesConfig message.
                 * @param message Plain 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 DesiredAdditionalIPRangesConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns DesiredAdditionalIPRangesConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.DesiredAdditionalIPRangesConfig;

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

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

                /**
                 * Gets the default type url for DesiredAdditionalIPRangesConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of an AutoIpamConfig. */
            interface IAutoIpamConfig {

                /** AutoIpamConfig enabled */
                enabled?: (boolean|null);
            }

            /** Represents an AutoIpamConfig. */
            class AutoIpamConfig implements IAutoIpamConfig {

                /**
                 * Constructs a new AutoIpamConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IAutoIpamConfig);

                /** AutoIpamConfig enabled. */
                public enabled?: (boolean|null);

                /**
                 * Creates a new AutoIpamConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns AutoIpamConfig instance
                 */
                public static create(properties?: google.container.v1.IAutoIpamConfig): google.container.v1.AutoIpamConfig;

                /**
                 * Encodes the specified AutoIpamConfig message. Does not implicitly {@link google.container.v1.AutoIpamConfig.verify|verify} messages.
                 * @param message AutoIpamConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IAutoIpamConfig, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies an AutoIpamConfig message.
                 * @param message Plain 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 AutoIpamConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns AutoIpamConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.AutoIpamConfig;

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

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

                /**
                 * Gets the default type url for AutoIpamConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a RangeInfo. */
            interface IRangeInfo {

                /** RangeInfo rangeName */
                rangeName?: (string|null);

                /** RangeInfo utilization */
                utilization?: (number|null);
            }

            /** Represents a RangeInfo. */
            class RangeInfo implements IRangeInfo {

                /**
                 * Constructs a new RangeInfo.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IRangeInfo);

                /** RangeInfo rangeName. */
                public rangeName: string;

                /** RangeInfo utilization. */
                public utilization: number;

                /**
                 * Creates a new RangeInfo instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns RangeInfo instance
                 */
                public static create(properties?: google.container.v1.IRangeInfo): google.container.v1.RangeInfo;

                /**
                 * Encodes the specified RangeInfo message. Does not implicitly {@link google.container.v1.RangeInfo.verify|verify} messages.
                 * @param message RangeInfo message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IRangeInfo, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a RangeInfo message.
                 * @param message Plain 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 RangeInfo message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns RangeInfo
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.RangeInfo;

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

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

                /**
                 * Gets the default type url for RangeInfo
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a DesiredEnterpriseConfig. */
            interface IDesiredEnterpriseConfig {

                /** DesiredEnterpriseConfig desiredTier */
                desiredTier?: (google.container.v1.EnterpriseConfig.ClusterTier|keyof typeof google.container.v1.EnterpriseConfig.ClusterTier|null);
            }

            /** Represents a DesiredEnterpriseConfig. */
            class DesiredEnterpriseConfig implements IDesiredEnterpriseConfig {

                /**
                 * Constructs a new DesiredEnterpriseConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IDesiredEnterpriseConfig);

                /** DesiredEnterpriseConfig desiredTier. */
                public desiredTier: (google.container.v1.EnterpriseConfig.ClusterTier|keyof typeof google.container.v1.EnterpriseConfig.ClusterTier);

                /**
                 * Creates a new DesiredEnterpriseConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns DesiredEnterpriseConfig instance
                 */
                public static create(properties?: google.container.v1.IDesiredEnterpriseConfig): google.container.v1.DesiredEnterpriseConfig;

                /**
                 * Encodes the specified DesiredEnterpriseConfig message. Does not implicitly {@link google.container.v1.DesiredEnterpriseConfig.verify|verify} messages.
                 * @param message DesiredEnterpriseConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IDesiredEnterpriseConfig, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a DesiredEnterpriseConfig message.
                 * @param message Plain 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 DesiredEnterpriseConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns DesiredEnterpriseConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.DesiredEnterpriseConfig;

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

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

                /**
                 * Gets the default type url for DesiredEnterpriseConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of an Operation. */
            interface IOperation {

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

                /** Operation zone */
                zone?: (string|null);

                /** Operation operationType */
                operationType?: (google.container.v1.Operation.Type|keyof typeof google.container.v1.Operation.Type|null);

                /** Operation status */
                status?: (google.container.v1.Operation.Status|keyof typeof google.container.v1.Operation.Status|null);

                /** Operation detail */
                detail?: (string|null);

                /** Operation statusMessage */
                statusMessage?: (string|null);

                /** Operation selfLink */
                selfLink?: (string|null);

                /** Operation targetLink */
                targetLink?: (string|null);

                /** Operation location */
                location?: (string|null);

                /** Operation startTime */
                startTime?: (string|null);

                /** Operation endTime */
                endTime?: (string|null);

                /** Operation progress */
                progress?: (google.container.v1.IOperationProgress|null);

                /** Operation clusterConditions */
                clusterConditions?: (google.container.v1.IStatusCondition[]|null);

                /** Operation nodepoolConditions */
                nodepoolConditions?: (google.container.v1.IStatusCondition[]|null);

                /** Operation error */
                error?: (google.rpc.IStatus|null);
            }

            /** Represents an Operation. */
            class Operation implements IOperation {

                /**
                 * Constructs a new Operation.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IOperation);

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

                /** Operation zone. */
                public zone: string;

                /** Operation operationType. */
                public operationType: (google.container.v1.Operation.Type|keyof typeof google.container.v1.Operation.Type);

                /** Operation status. */
                public status: (google.container.v1.Operation.Status|keyof typeof google.container.v1.Operation.Status);

                /** Operation detail. */
                public detail: string;

                /** Operation statusMessage. */
                public statusMessage: string;

                /** Operation selfLink. */
                public selfLink: string;

                /** Operation targetLink. */
                public targetLink: string;

                /** Operation location. */
                public location: string;

                /** Operation startTime. */
                public startTime: string;

                /** Operation endTime. */
                public endTime: string;

                /** Operation progress. */
                public progress?: (google.container.v1.IOperationProgress|null);

                /** Operation clusterConditions. */
                public clusterConditions: google.container.v1.IStatusCondition[];

                /** Operation nodepoolConditions. */
                public nodepoolConditions: google.container.v1.IStatusCondition[];

                /** Operation error. */
                public error?: (google.rpc.IStatus|null);

                /**
                 * Creates a new Operation instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns Operation instance
                 */
                public static create(properties?: google.container.v1.IOperation): google.container.v1.Operation;

                /**
                 * Encodes the specified Operation message. Does not implicitly {@link google.container.v1.Operation.verify|verify} messages.
                 * @param message Operation message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IOperation, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies an Operation message.
                 * @param message Plain 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 Operation message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns Operation
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.Operation;

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

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

                /**
                 * Gets the default type url for Operation
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace Operation {

                /** Status enum. */
                enum Status {
                    STATUS_UNSPECIFIED = 0,
                    PENDING = 1,
                    RUNNING = 2,
                    DONE = 3,
                    ABORTING = 4
                }

                /** Type enum. */
                enum Type {
                    TYPE_UNSPECIFIED = 0,
                    CREATE_CLUSTER = 1,
                    DELETE_CLUSTER = 2,
                    UPGRADE_MASTER = 3,
                    UPGRADE_NODES = 4,
                    REPAIR_CLUSTER = 5,
                    UPDATE_CLUSTER = 6,
                    CREATE_NODE_POOL = 7,
                    DELETE_NODE_POOL = 8,
                    SET_NODE_POOL_MANAGEMENT = 9,
                    AUTO_REPAIR_NODES = 10,
                    AUTO_UPGRADE_NODES = 11,
                    SET_LABELS = 12,
                    SET_MASTER_AUTH = 13,
                    SET_NODE_POOL_SIZE = 14,
                    SET_NETWORK_POLICY = 15,
                    SET_MAINTENANCE_POLICY = 16,
                    RESIZE_CLUSTER = 18,
                    FLEET_FEATURE_UPGRADE = 19
                }
            }

            /** Properties of an OperationProgress. */
            interface IOperationProgress {

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

                /** OperationProgress status */
                status?: (google.container.v1.Operation.Status|keyof typeof google.container.v1.Operation.Status|null);

                /** OperationProgress metrics */
                metrics?: (google.container.v1.OperationProgress.IMetric[]|null);

                /** OperationProgress stages */
                stages?: (google.container.v1.IOperationProgress[]|null);
            }

            /** Represents an OperationProgress. */
            class OperationProgress implements IOperationProgress {

                /**
                 * Constructs a new OperationProgress.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IOperationProgress);

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

                /** OperationProgress status. */
                public status: (google.container.v1.Operation.Status|keyof typeof google.container.v1.Operation.Status);

                /** OperationProgress metrics. */
                public metrics: google.container.v1.OperationProgress.IMetric[];

                /** OperationProgress stages. */
                public stages: google.container.v1.IOperationProgress[];

                /**
                 * Creates a new OperationProgress instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns OperationProgress instance
                 */
                public static create(properties?: google.container.v1.IOperationProgress): google.container.v1.OperationProgress;

                /**
                 * Encodes the specified OperationProgress message. Does not implicitly {@link google.container.v1.OperationProgress.verify|verify} messages.
                 * @param message OperationProgress message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IOperationProgress, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies an OperationProgress message.
                 * @param message Plain 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 OperationProgress message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns OperationProgress
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.OperationProgress;

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

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

                /**
                 * Gets the default type url for OperationProgress
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace OperationProgress {

                /** Properties of a Metric. */
                interface IMetric {

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

                    /** Metric intValue */
                    intValue?: (number|Long|string|null);

                    /** Metric doubleValue */
                    doubleValue?: (number|null);

                    /** Metric stringValue */
                    stringValue?: (string|null);
                }

                /** Represents a Metric. */
                class Metric implements IMetric {

                    /**
                     * Constructs a new Metric.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.container.v1.OperationProgress.IMetric);

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

                    /** Metric intValue. */
                    public intValue?: (number|Long|string|null);

                    /** Metric doubleValue. */
                    public doubleValue?: (number|null);

                    /** Metric stringValue. */
                    public stringValue?: (string|null);

                    /** Metric value. */
                    public value?: ("intValue"|"doubleValue"|"stringValue");

                    /**
                     * Creates a new Metric instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Metric instance
                     */
                    public static create(properties?: google.container.v1.OperationProgress.IMetric): google.container.v1.OperationProgress.Metric;

                    /**
                     * Encodes the specified Metric message. Does not implicitly {@link google.container.v1.OperationProgress.Metric.verify|verify} messages.
                     * @param message Metric message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.container.v1.OperationProgress.IMetric, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Metric message, length delimited. Does not implicitly {@link google.container.v1.OperationProgress.Metric.verify|verify} messages.
                     * @param message Metric message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.container.v1.OperationProgress.IMetric, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

                    /**
                     * Verifies a Metric message.
                     * @param message Plain 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 Metric message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Metric
                     */
                    public static fromObject(object: { [k: string]: any }): google.container.v1.OperationProgress.Metric;

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

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

                    /**
                     * Gets the default type url for Metric
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }
            }

            /** Properties of a CreateClusterRequest. */
            interface ICreateClusterRequest {

                /** CreateClusterRequest projectId */
                projectId?: (string|null);

                /** CreateClusterRequest zone */
                zone?: (string|null);

                /** CreateClusterRequest cluster */
                cluster?: (google.container.v1.ICluster|null);

                /** CreateClusterRequest parent */
                parent?: (string|null);
            }

            /** Represents a CreateClusterRequest. */
            class CreateClusterRequest implements ICreateClusterRequest {

                /**
                 * Constructs a new CreateClusterRequest.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.ICreateClusterRequest);

                /** CreateClusterRequest projectId. */
                public projectId: string;

                /** CreateClusterRequest zone. */
                public zone: string;

                /** CreateClusterRequest cluster. */
                public cluster?: (google.container.v1.ICluster|null);

                /** CreateClusterRequest parent. */
                public parent: string;

                /**
                 * Creates a new CreateClusterRequest instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns CreateClusterRequest instance
                 */
                public static create(properties?: google.container.v1.ICreateClusterRequest): google.container.v1.CreateClusterRequest;

                /**
                 * Encodes the specified CreateClusterRequest message. Does not implicitly {@link google.container.v1.CreateClusterRequest.verify|verify} messages.
                 * @param message CreateClusterRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.ICreateClusterRequest, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a CreateClusterRequest message.
                 * @param message Plain 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 CreateClusterRequest message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns CreateClusterRequest
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.CreateClusterRequest;

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

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

                /**
                 * Gets the default type url for CreateClusterRequest
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a GetClusterRequest. */
            interface IGetClusterRequest {

                /** GetClusterRequest projectId */
                projectId?: (string|null);

                /** GetClusterRequest zone */
                zone?: (string|null);

                /** GetClusterRequest clusterId */
                clusterId?: (string|null);

                /** GetClusterRequest name */
                name?: (string|null);
            }

            /** Represents a GetClusterRequest. */
            class GetClusterRequest implements IGetClusterRequest {

                /**
                 * Constructs a new GetClusterRequest.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IGetClusterRequest);

                /** GetClusterRequest projectId. */
                public projectId: string;

                /** GetClusterRequest zone. */
                public zone: string;

                /** GetClusterRequest clusterId. */
                public clusterId: string;

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

                /**
                 * Creates a new GetClusterRequest instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns GetClusterRequest instance
                 */
                public static create(properties?: google.container.v1.IGetClusterRequest): google.container.v1.GetClusterRequest;

                /**
                 * Encodes the specified GetClusterRequest message. Does not implicitly {@link google.container.v1.GetClusterRequest.verify|verify} messages.
                 * @param message GetClusterRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IGetClusterRequest, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a GetClusterRequest message.
                 * @param message Plain 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 GetClusterRequest message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns GetClusterRequest
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.GetClusterRequest;

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

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

                /**
                 * Gets the default type url for GetClusterRequest
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of an UpdateClusterRequest. */
            interface IUpdateClusterRequest {

                /** UpdateClusterRequest projectId */
                projectId?: (string|null);

                /** UpdateClusterRequest zone */
                zone?: (string|null);

                /** UpdateClusterRequest clusterId */
                clusterId?: (string|null);

                /** UpdateClusterRequest update */
                update?: (google.container.v1.IClusterUpdate|null);

                /** UpdateClusterRequest name */
                name?: (string|null);
            }

            /** Represents an UpdateClusterRequest. */
            class UpdateClusterRequest implements IUpdateClusterRequest {

                /**
                 * Constructs a new UpdateClusterRequest.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IUpdateClusterRequest);

                /** UpdateClusterRequest projectId. */
                public projectId: string;

                /** UpdateClusterRequest zone. */
                public zone: string;

                /** UpdateClusterRequest clusterId. */
                public clusterId: string;

                /** UpdateClusterRequest update. */
                public update?: (google.container.v1.IClusterUpdate|null);

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

                /**
                 * Creates a new UpdateClusterRequest instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns UpdateClusterRequest instance
                 */
                public static create(properties?: google.container.v1.IUpdateClusterRequest): google.container.v1.UpdateClusterRequest;

                /**
                 * Encodes the specified UpdateClusterRequest message. Does not implicitly {@link google.container.v1.UpdateClusterRequest.verify|verify} messages.
                 * @param message UpdateClusterRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IUpdateClusterRequest, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies an UpdateClusterRequest message.
                 * @param message Plain 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 UpdateClusterRequest message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns UpdateClusterRequest
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.UpdateClusterRequest;

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

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

                /**
                 * Gets the default type url for UpdateClusterRequest
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of an UpdateNodePoolRequest. */
            interface IUpdateNodePoolRequest {

                /** UpdateNodePoolRequest projectId */
                projectId?: (string|null);

                /** UpdateNodePoolRequest zone */
                zone?: (string|null);

                /** UpdateNodePoolRequest clusterId */
                clusterId?: (string|null);

                /** UpdateNodePoolRequest nodePoolId */
                nodePoolId?: (string|null);

                /** UpdateNodePoolRequest nodeVersion */
                nodeVersion?: (string|null);

                /** UpdateNodePoolRequest imageType */
                imageType?: (string|null);

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

                /** UpdateNodePoolRequest locations */
                locations?: (string[]|null);

                /** UpdateNodePoolRequest workloadMetadataConfig */
                workloadMetadataConfig?: (google.container.v1.IWorkloadMetadataConfig|null);

                /** UpdateNodePoolRequest upgradeSettings */
                upgradeSettings?: (google.container.v1.NodePool.IUpgradeSettings|null);

                /** UpdateNodePoolRequest tags */
                tags?: (google.container.v1.INetworkTags|null);

                /** UpdateNodePoolRequest taints */
                taints?: (google.container.v1.INodeTaints|null);

                /** UpdateNodePoolRequest labels */
                labels?: (google.container.v1.INodeLabels|null);

                /** UpdateNodePoolRequest linuxNodeConfig */
                linuxNodeConfig?: (google.container.v1.ILinuxNodeConfig|null);

                /** UpdateNodePoolRequest kubeletConfig */
                kubeletConfig?: (google.container.v1.INodeKubeletConfig|null);

                /** UpdateNodePoolRequest nodeNetworkConfig */
                nodeNetworkConfig?: (google.container.v1.INodeNetworkConfig|null);

                /** UpdateNodePoolRequest gcfsConfig */
                gcfsConfig?: (google.container.v1.IGcfsConfig|null);

                /** UpdateNodePoolRequest confidentialNodes */
                confidentialNodes?: (google.container.v1.IConfidentialNodes|null);

                /** UpdateNodePoolRequest gvnic */
                gvnic?: (google.container.v1.IVirtualNIC|null);

                /** UpdateNodePoolRequest etag */
                etag?: (string|null);

                /** UpdateNodePoolRequest fastSocket */
                fastSocket?: (google.container.v1.IFastSocket|null);

                /** UpdateNodePoolRequest loggingConfig */
                loggingConfig?: (google.container.v1.INodePoolLoggingConfig|null);

                /** UpdateNodePoolRequest resourceLabels */
                resourceLabels?: (google.container.v1.IResourceLabels|null);

                /** UpdateNodePoolRequest windowsNodeConfig */
                windowsNodeConfig?: (google.container.v1.IWindowsNodeConfig|null);

                /** UpdateNodePoolRequest accelerators */
                accelerators?: (google.container.v1.IAcceleratorConfig[]|null);

                /** UpdateNodePoolRequest machineType */
                machineType?: (string|null);

                /** UpdateNodePoolRequest diskType */
                diskType?: (string|null);

                /** UpdateNodePoolRequest diskSizeGb */
                diskSizeGb?: (number|Long|string|null);

                /** UpdateNodePoolRequest resourceManagerTags */
                resourceManagerTags?: (google.container.v1.IResourceManagerTags|null);

                /** UpdateNodePoolRequest containerdConfig */
                containerdConfig?: (google.container.v1.IContainerdConfig|null);

                /** UpdateNodePoolRequest queuedProvisioning */
                queuedProvisioning?: (google.container.v1.NodePool.IQueuedProvisioning|null);

                /** UpdateNodePoolRequest storagePools */
                storagePools?: (string[]|null);

                /** UpdateNodePoolRequest maxRunDuration */
                maxRunDuration?: (google.protobuf.IDuration|null);

                /** UpdateNodePoolRequest flexStart */
                flexStart?: (boolean|null);

                /** UpdateNodePoolRequest bootDisk */
                bootDisk?: (google.container.v1.IBootDisk|null);

                /** UpdateNodePoolRequest nodeDrainConfig */
                nodeDrainConfig?: (google.container.v1.NodePool.INodeDrainConfig|null);

                /** UpdateNodePoolRequest consolidationDelay */
                consolidationDelay?: (google.protobuf.IDuration|null);

                /** UpdateNodePoolRequest taintConfig */
                taintConfig?: (google.container.v1.ITaintConfig|null);
            }

            /** Represents an UpdateNodePoolRequest. */
            class UpdateNodePoolRequest implements IUpdateNodePoolRequest {

                /**
                 * Constructs a new UpdateNodePoolRequest.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IUpdateNodePoolRequest);

                /** UpdateNodePoolRequest projectId. */
                public projectId: string;

                /** UpdateNodePoolRequest zone. */
                public zone: string;

                /** UpdateNodePoolRequest clusterId. */
                public clusterId: string;

                /** UpdateNodePoolRequest nodePoolId. */
                public nodePoolId: string;

                /** UpdateNodePoolRequest nodeVersion. */
                public nodeVersion: string;

                /** UpdateNodePoolRequest imageType. */
                public imageType: string;

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

                /** UpdateNodePoolRequest locations. */
                public locations: string[];

                /** UpdateNodePoolRequest workloadMetadataConfig. */
                public workloadMetadataConfig?: (google.container.v1.IWorkloadMetadataConfig|null);

                /** UpdateNodePoolRequest upgradeSettings. */
                public upgradeSettings?: (google.container.v1.NodePool.IUpgradeSettings|null);

                /** UpdateNodePoolRequest tags. */
                public tags?: (google.container.v1.INetworkTags|null);

                /** UpdateNodePoolRequest taints. */
                public taints?: (google.container.v1.INodeTaints|null);

                /** UpdateNodePoolRequest labels. */
                public labels?: (google.container.v1.INodeLabels|null);

                /** UpdateNodePoolRequest linuxNodeConfig. */
                public linuxNodeConfig?: (google.container.v1.ILinuxNodeConfig|null);

                /** UpdateNodePoolRequest kubeletConfig. */
                public kubeletConfig?: (google.container.v1.INodeKubeletConfig|null);

                /** UpdateNodePoolRequest nodeNetworkConfig. */
                public nodeNetworkConfig?: (google.container.v1.INodeNetworkConfig|null);

                /** UpdateNodePoolRequest gcfsConfig. */
                public gcfsConfig?: (google.container.v1.IGcfsConfig|null);

                /** UpdateNodePoolRequest confidentialNodes. */
                public confidentialNodes?: (google.container.v1.IConfidentialNodes|null);

                /** UpdateNodePoolRequest gvnic. */
                public gvnic?: (google.container.v1.IVirtualNIC|null);

                /** UpdateNodePoolRequest etag. */
                public etag: string;

                /** UpdateNodePoolRequest fastSocket. */
                public fastSocket?: (google.container.v1.IFastSocket|null);

                /** UpdateNodePoolRequest loggingConfig. */
                public loggingConfig?: (google.container.v1.INodePoolLoggingConfig|null);

                /** UpdateNodePoolRequest resourceLabels. */
                public resourceLabels?: (google.container.v1.IResourceLabels|null);

                /** UpdateNodePoolRequest windowsNodeConfig. */
                public windowsNodeConfig?: (google.container.v1.IWindowsNodeConfig|null);

                /** UpdateNodePoolRequest accelerators. */
                public accelerators: google.container.v1.IAcceleratorConfig[];

                /** UpdateNodePoolRequest machineType. */
                public machineType: string;

                /** UpdateNodePoolRequest diskType. */
                public diskType: string;

                /** UpdateNodePoolRequest diskSizeGb. */
                public diskSizeGb: (number|Long|string);

                /** UpdateNodePoolRequest resourceManagerTags. */
                public resourceManagerTags?: (google.container.v1.IResourceManagerTags|null);

                /** UpdateNodePoolRequest containerdConfig. */
                public containerdConfig?: (google.container.v1.IContainerdConfig|null);

                /** UpdateNodePoolRequest queuedProvisioning. */
                public queuedProvisioning?: (google.container.v1.NodePool.IQueuedProvisioning|null);

                /** UpdateNodePoolRequest storagePools. */
                public storagePools: string[];

                /** UpdateNodePoolRequest maxRunDuration. */
                public maxRunDuration?: (google.protobuf.IDuration|null);

                /** UpdateNodePoolRequest flexStart. */
                public flexStart?: (boolean|null);

                /** UpdateNodePoolRequest bootDisk. */
                public bootDisk?: (google.container.v1.IBootDisk|null);

                /** UpdateNodePoolRequest nodeDrainConfig. */
                public nodeDrainConfig?: (google.container.v1.NodePool.INodeDrainConfig|null);

                /** UpdateNodePoolRequest consolidationDelay. */
                public consolidationDelay?: (google.protobuf.IDuration|null);

                /** UpdateNodePoolRequest taintConfig. */
                public taintConfig?: (google.container.v1.ITaintConfig|null);

                /**
                 * Creates a new UpdateNodePoolRequest instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns UpdateNodePoolRequest instance
                 */
                public static create(properties?: google.container.v1.IUpdateNodePoolRequest): google.container.v1.UpdateNodePoolRequest;

                /**
                 * Encodes the specified UpdateNodePoolRequest message. Does not implicitly {@link google.container.v1.UpdateNodePoolRequest.verify|verify} messages.
                 * @param message UpdateNodePoolRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IUpdateNodePoolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies an UpdateNodePoolRequest message.
                 * @param message Plain 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 UpdateNodePoolRequest message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns UpdateNodePoolRequest
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.UpdateNodePoolRequest;

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

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

                /**
                 * Gets the default type url for UpdateNodePoolRequest
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a SetNodePoolAutoscalingRequest. */
            interface ISetNodePoolAutoscalingRequest {

                /** SetNodePoolAutoscalingRequest projectId */
                projectId?: (string|null);

                /** SetNodePoolAutoscalingRequest zone */
                zone?: (string|null);

                /** SetNodePoolAutoscalingRequest clusterId */
                clusterId?: (string|null);

                /** SetNodePoolAutoscalingRequest nodePoolId */
                nodePoolId?: (string|null);

                /** SetNodePoolAutoscalingRequest autoscaling */
                autoscaling?: (google.container.v1.INodePoolAutoscaling|null);

                /** SetNodePoolAutoscalingRequest name */
                name?: (string|null);
            }

            /** Represents a SetNodePoolAutoscalingRequest. */
            class SetNodePoolAutoscalingRequest implements ISetNodePoolAutoscalingRequest {

                /**
                 * Constructs a new SetNodePoolAutoscalingRequest.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.ISetNodePoolAutoscalingRequest);

                /** SetNodePoolAutoscalingRequest projectId. */
                public projectId: string;

                /** SetNodePoolAutoscalingRequest zone. */
                public zone: string;

                /** SetNodePoolAutoscalingRequest clusterId. */
                public clusterId: string;

                /** SetNodePoolAutoscalingRequest nodePoolId. */
                public nodePoolId: string;

                /** SetNodePoolAutoscalingRequest autoscaling. */
                public autoscaling?: (google.container.v1.INodePoolAutoscaling|null);

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

                /**
                 * Creates a new SetNodePoolAutoscalingRequest instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns SetNodePoolAutoscalingRequest instance
                 */
                public static create(properties?: google.container.v1.ISetNodePoolAutoscalingRequest): google.container.v1.SetNodePoolAutoscalingRequest;

                /**
                 * Encodes the specified SetNodePoolAutoscalingRequest message. Does not implicitly {@link google.container.v1.SetNodePoolAutoscalingRequest.verify|verify} messages.
                 * @param message SetNodePoolAutoscalingRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.ISetNodePoolAutoscalingRequest, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a SetNodePoolAutoscalingRequest message.
                 * @param message Plain 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 SetNodePoolAutoscalingRequest message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns SetNodePoolAutoscalingRequest
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.SetNodePoolAutoscalingRequest;

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

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

                /**
                 * Gets the default type url for SetNodePoolAutoscalingRequest
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a SetLoggingServiceRequest. */
            interface ISetLoggingServiceRequest {

                /** SetLoggingServiceRequest projectId */
                projectId?: (string|null);

                /** SetLoggingServiceRequest zone */
                zone?: (string|null);

                /** SetLoggingServiceRequest clusterId */
                clusterId?: (string|null);

                /** SetLoggingServiceRequest loggingService */
                loggingService?: (string|null);

                /** SetLoggingServiceRequest name */
                name?: (string|null);
            }

            /** Represents a SetLoggingServiceRequest. */
            class SetLoggingServiceRequest implements ISetLoggingServiceRequest {

                /**
                 * Constructs a new SetLoggingServiceRequest.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.ISetLoggingServiceRequest);

                /** SetLoggingServiceRequest projectId. */
                public projectId: string;

                /** SetLoggingServiceRequest zone. */
                public zone: string;

                /** SetLoggingServiceRequest clusterId. */
                public clusterId: string;

                /** SetLoggingServiceRequest loggingService. */
                public loggingService: string;

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

                /**
                 * Creates a new SetLoggingServiceRequest instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns SetLoggingServiceRequest instance
                 */
                public static create(properties?: google.container.v1.ISetLoggingServiceRequest): google.container.v1.SetLoggingServiceRequest;

                /**
                 * Encodes the specified SetLoggingServiceRequest message. Does not implicitly {@link google.container.v1.SetLoggingServiceRequest.verify|verify} messages.
                 * @param message SetLoggingServiceRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.ISetLoggingServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a SetLoggingServiceRequest message.
                 * @param message Plain 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 SetLoggingServiceRequest message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns SetLoggingServiceRequest
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.SetLoggingServiceRequest;

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

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

                /**
                 * Gets the default type url for SetLoggingServiceRequest
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a SetMonitoringServiceRequest. */
            interface ISetMonitoringServiceRequest {

                /** SetMonitoringServiceRequest projectId */
                projectId?: (string|null);

                /** SetMonitoringServiceRequest zone */
                zone?: (string|null);

                /** SetMonitoringServiceRequest clusterId */
                clusterId?: (string|null);

                /** SetMonitoringServiceRequest monitoringService */
                monitoringService?: (string|null);

                /** SetMonitoringServiceRequest name */
                name?: (string|null);
            }

            /** Represents a SetMonitoringServiceRequest. */
            class SetMonitoringServiceRequest implements ISetMonitoringServiceRequest {

                /**
                 * Constructs a new SetMonitoringServiceRequest.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.ISetMonitoringServiceRequest);

                /** SetMonitoringServiceRequest projectId. */
                public projectId: string;

                /** SetMonitoringServiceRequest zone. */
                public zone: string;

                /** SetMonitoringServiceRequest clusterId. */
                public clusterId: string;

                /** SetMonitoringServiceRequest monitoringService. */
                public monitoringService: string;

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

                /**
                 * Creates a new SetMonitoringServiceRequest instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns SetMonitoringServiceRequest instance
                 */
                public static create(properties?: google.container.v1.ISetMonitoringServiceRequest): google.container.v1.SetMonitoringServiceRequest;

                /**
                 * Encodes the specified SetMonitoringServiceRequest message. Does not implicitly {@link google.container.v1.SetMonitoringServiceRequest.verify|verify} messages.
                 * @param message SetMonitoringServiceRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.ISetMonitoringServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a SetMonitoringServiceRequest message.
                 * @param message Plain 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 SetMonitoringServiceRequest message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns SetMonitoringServiceRequest
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.SetMonitoringServiceRequest;

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

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

                /**
                 * Gets the default type url for SetMonitoringServiceRequest
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a SetAddonsConfigRequest. */
            interface ISetAddonsConfigRequest {

                /** SetAddonsConfigRequest projectId */
                projectId?: (string|null);

                /** SetAddonsConfigRequest zone */
                zone?: (string|null);

                /** SetAddonsConfigRequest clusterId */
                clusterId?: (string|null);

                /** SetAddonsConfigRequest addonsConfig */
                addonsConfig?: (google.container.v1.IAddonsConfig|null);

                /** SetAddonsConfigRequest name */
                name?: (string|null);
            }

            /** Represents a SetAddonsConfigRequest. */
            class SetAddonsConfigRequest implements ISetAddonsConfigRequest {

                /**
                 * Constructs a new SetAddonsConfigRequest.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.ISetAddonsConfigRequest);

                /** SetAddonsConfigRequest projectId. */
                public projectId: string;

                /** SetAddonsConfigRequest zone. */
                public zone: string;

                /** SetAddonsConfigRequest clusterId. */
                public clusterId: string;

                /** SetAddonsConfigRequest addonsConfig. */
                public addonsConfig?: (google.container.v1.IAddonsConfig|null);

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

                /**
                 * Creates a new SetAddonsConfigRequest instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns SetAddonsConfigRequest instance
                 */
                public static create(properties?: google.container.v1.ISetAddonsConfigRequest): google.container.v1.SetAddonsConfigRequest;

                /**
                 * Encodes the specified SetAddonsConfigRequest message. Does not implicitly {@link google.container.v1.SetAddonsConfigRequest.verify|verify} messages.
                 * @param message SetAddonsConfigRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.ISetAddonsConfigRequest, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a SetAddonsConfigRequest message.
                 * @param message Plain 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 SetAddonsConfigRequest message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns SetAddonsConfigRequest
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.SetAddonsConfigRequest;

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

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

                /**
                 * Gets the default type url for SetAddonsConfigRequest
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a SetLocationsRequest. */
            interface ISetLocationsRequest {

                /** SetLocationsRequest projectId */
                projectId?: (string|null);

                /** SetLocationsRequest zone */
                zone?: (string|null);

                /** SetLocationsRequest clusterId */
                clusterId?: (string|null);

                /** SetLocationsRequest locations */
                locations?: (string[]|null);

                /** SetLocationsRequest name */
                name?: (string|null);
            }

            /** Represents a SetLocationsRequest. */
            class SetLocationsRequest implements ISetLocationsRequest {

                /**
                 * Constructs a new SetLocationsRequest.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.ISetLocationsRequest);

                /** SetLocationsRequest projectId. */
                public projectId: string;

                /** SetLocationsRequest zone. */
                public zone: string;

                /** SetLocationsRequest clusterId. */
                public clusterId: string;

                /** SetLocationsRequest locations. */
                public locations: string[];

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

                /**
                 * Creates a new SetLocationsRequest instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns SetLocationsRequest instance
                 */
                public static create(properties?: google.container.v1.ISetLocationsRequest): google.container.v1.SetLocationsRequest;

                /**
                 * Encodes the specified SetLocationsRequest message. Does not implicitly {@link google.container.v1.SetLocationsRequest.verify|verify} messages.
                 * @param message SetLocationsRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.ISetLocationsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a SetLocationsRequest message.
                 * @param message Plain 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 SetLocationsRequest message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns SetLocationsRequest
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.SetLocationsRequest;

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

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

                /**
                 * Gets the default type url for SetLocationsRequest
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of an UpdateMasterRequest. */
            interface IUpdateMasterRequest {

                /** UpdateMasterRequest projectId */
                projectId?: (string|null);

                /** UpdateMasterRequest zone */
                zone?: (string|null);

                /** UpdateMasterRequest clusterId */
                clusterId?: (string|null);

                /** UpdateMasterRequest masterVersion */
                masterVersion?: (string|null);

                /** UpdateMasterRequest name */
                name?: (string|null);
            }

            /** Represents an UpdateMasterRequest. */
            class UpdateMasterRequest implements IUpdateMasterRequest {

                /**
                 * Constructs a new UpdateMasterRequest.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IUpdateMasterRequest);

                /** UpdateMasterRequest projectId. */
                public projectId: string;

                /** UpdateMasterRequest zone. */
                public zone: string;

                /** UpdateMasterRequest clusterId. */
                public clusterId: string;

                /** UpdateMasterRequest masterVersion. */
                public masterVersion: string;

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

                /**
                 * Creates a new UpdateMasterRequest instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns UpdateMasterRequest instance
                 */
                public static create(properties?: google.container.v1.IUpdateMasterRequest): google.container.v1.UpdateMasterRequest;

                /**
                 * Encodes the specified UpdateMasterRequest message. Does not implicitly {@link google.container.v1.UpdateMasterRequest.verify|verify} messages.
                 * @param message UpdateMasterRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IUpdateMasterRequest, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies an UpdateMasterRequest message.
                 * @param message Plain 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 UpdateMasterRequest message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns UpdateMasterRequest
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.UpdateMasterRequest;

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

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

                /**
                 * Gets the default type url for UpdateMasterRequest
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a SetMasterAuthRequest. */
            interface ISetMasterAuthRequest {

                /** SetMasterAuthRequest projectId */
                projectId?: (string|null);

                /** SetMasterAuthRequest zone */
                zone?: (string|null);

                /** SetMasterAuthRequest clusterId */
                clusterId?: (string|null);

                /** SetMasterAuthRequest action */
                action?: (google.container.v1.SetMasterAuthRequest.Action|keyof typeof google.container.v1.SetMasterAuthRequest.Action|null);

                /** SetMasterAuthRequest update */
                update?: (google.container.v1.IMasterAuth|null);

                /** SetMasterAuthRequest name */
                name?: (string|null);
            }

            /** Represents a SetMasterAuthRequest. */
            class SetMasterAuthRequest implements ISetMasterAuthRequest {

                /**
                 * Constructs a new SetMasterAuthRequest.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.ISetMasterAuthRequest);

                /** SetMasterAuthRequest projectId. */
                public projectId: string;

                /** SetMasterAuthRequest zone. */
                public zone: string;

                /** SetMasterAuthRequest clusterId. */
                public clusterId: string;

                /** SetMasterAuthRequest action. */
                public action: (google.container.v1.SetMasterAuthRequest.Action|keyof typeof google.container.v1.SetMasterAuthRequest.Action);

                /** SetMasterAuthRequest update. */
                public update?: (google.container.v1.IMasterAuth|null);

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

                /**
                 * Creates a new SetMasterAuthRequest instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns SetMasterAuthRequest instance
                 */
                public static create(properties?: google.container.v1.ISetMasterAuthRequest): google.container.v1.SetMasterAuthRequest;

                /**
                 * Encodes the specified SetMasterAuthRequest message. Does not implicitly {@link google.container.v1.SetMasterAuthRequest.verify|verify} messages.
                 * @param message SetMasterAuthRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.ISetMasterAuthRequest, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a SetMasterAuthRequest message.
                 * @param message Plain 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 SetMasterAuthRequest message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns SetMasterAuthRequest
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.SetMasterAuthRequest;

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

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

                /**
                 * Gets the default type url for SetMasterAuthRequest
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace SetMasterAuthRequest {

                /** Action enum. */
                enum Action {
                    UNKNOWN = 0,
                    SET_PASSWORD = 1,
                    GENERATE_PASSWORD = 2,
                    SET_USERNAME = 3
                }
            }

            /** Properties of a DeleteClusterRequest. */
            interface IDeleteClusterRequest {

                /** DeleteClusterRequest projectId */
                projectId?: (string|null);

                /** DeleteClusterRequest zone */
                zone?: (string|null);

                /** DeleteClusterRequest clusterId */
                clusterId?: (string|null);

                /** DeleteClusterRequest name */
                name?: (string|null);
            }

            /** Represents a DeleteClusterRequest. */
            class DeleteClusterRequest implements IDeleteClusterRequest {

                /**
                 * Constructs a new DeleteClusterRequest.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IDeleteClusterRequest);

                /** DeleteClusterRequest projectId. */
                public projectId: string;

                /** DeleteClusterRequest zone. */
                public zone: string;

                /** DeleteClusterRequest clusterId. */
                public clusterId: string;

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

                /**
                 * Creates a new DeleteClusterRequest instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns DeleteClusterRequest instance
                 */
                public static create(properties?: google.container.v1.IDeleteClusterRequest): google.container.v1.DeleteClusterRequest;

                /**
                 * Encodes the specified DeleteClusterRequest message. Does not implicitly {@link google.container.v1.DeleteClusterRequest.verify|verify} messages.
                 * @param message DeleteClusterRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IDeleteClusterRequest, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a DeleteClusterRequest message.
                 * @param message Plain 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 DeleteClusterRequest message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns DeleteClusterRequest
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.DeleteClusterRequest;

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

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

                /**
                 * Gets the default type url for DeleteClusterRequest
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a ListClustersRequest. */
            interface IListClustersRequest {

                /** ListClustersRequest projectId */
                projectId?: (string|null);

                /** ListClustersRequest zone */
                zone?: (string|null);

                /** ListClustersRequest parent */
                parent?: (string|null);
            }

            /** Represents a ListClustersRequest. */
            class ListClustersRequest implements IListClustersRequest {

                /**
                 * Constructs a new ListClustersRequest.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IListClustersRequest);

                /** ListClustersRequest projectId. */
                public projectId: string;

                /** ListClustersRequest zone. */
                public zone: string;

                /** ListClustersRequest parent. */
                public parent: string;

                /**
                 * Creates a new ListClustersRequest instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ListClustersRequest instance
                 */
                public static create(properties?: google.container.v1.IListClustersRequest): google.container.v1.ListClustersRequest;

                /**
                 * Encodes the specified ListClustersRequest message. Does not implicitly {@link google.container.v1.ListClustersRequest.verify|verify} messages.
                 * @param message ListClustersRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IListClustersRequest, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a ListClustersRequest message.
                 * @param message Plain 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 ListClustersRequest message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ListClustersRequest
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.ListClustersRequest;

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

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

                /**
                 * Gets the default type url for ListClustersRequest
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a ListClustersResponse. */
            interface IListClustersResponse {

                /** ListClustersResponse clusters */
                clusters?: (google.container.v1.ICluster[]|null);

                /** ListClustersResponse missingZones */
                missingZones?: (string[]|null);
            }

            /** Represents a ListClustersResponse. */
            class ListClustersResponse implements IListClustersResponse {

                /**
                 * Constructs a new ListClustersResponse.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IListClustersResponse);

                /** ListClustersResponse clusters. */
                public clusters: google.container.v1.ICluster[];

                /** ListClustersResponse missingZones. */
                public missingZones: string[];

                /**
                 * Creates a new ListClustersResponse instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ListClustersResponse instance
                 */
                public static create(properties?: google.container.v1.IListClustersResponse): google.container.v1.ListClustersResponse;

                /**
                 * Encodes the specified ListClustersResponse message. Does not implicitly {@link google.container.v1.ListClustersResponse.verify|verify} messages.
                 * @param message ListClustersResponse message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IListClustersResponse, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a ListClustersResponse message.
                 * @param message Plain 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 ListClustersResponse message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ListClustersResponse
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.ListClustersResponse;

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

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

                /**
                 * Gets the default type url for ListClustersResponse
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a GetOperationRequest. */
            interface IGetOperationRequest {

                /** GetOperationRequest projectId */
                projectId?: (string|null);

                /** GetOperationRequest zone */
                zone?: (string|null);

                /** GetOperationRequest operationId */
                operationId?: (string|null);

                /** GetOperationRequest name */
                name?: (string|null);
            }

            /** Represents a GetOperationRequest. */
            class GetOperationRequest implements IGetOperationRequest {

                /**
                 * Constructs a new GetOperationRequest.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IGetOperationRequest);

                /** GetOperationRequest projectId. */
                public projectId: string;

                /** GetOperationRequest zone. */
                public zone: string;

                /** GetOperationRequest operationId. */
                public operationId: string;

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

                /**
                 * Creates a new GetOperationRequest instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns GetOperationRequest instance
                 */
                public static create(properties?: google.container.v1.IGetOperationRequest): google.container.v1.GetOperationRequest;

                /**
                 * Encodes the specified GetOperationRequest message. Does not implicitly {@link google.container.v1.GetOperationRequest.verify|verify} messages.
                 * @param message GetOperationRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IGetOperationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a GetOperationRequest message.
                 * @param message Plain 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 GetOperationRequest message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns GetOperationRequest
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.GetOperationRequest;

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

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

                /**
                 * Gets the default type url for GetOperationRequest
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a ListOperationsRequest. */
            interface IListOperationsRequest {

                /** ListOperationsRequest projectId */
                projectId?: (string|null);

                /** ListOperationsRequest zone */
                zone?: (string|null);

                /** ListOperationsRequest parent */
                parent?: (string|null);
            }

            /** Represents a ListOperationsRequest. */
            class ListOperationsRequest implements IListOperationsRequest {

                /**
                 * Constructs a new ListOperationsRequest.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IListOperationsRequest);

                /** ListOperationsRequest projectId. */
                public projectId: string;

                /** ListOperationsRequest zone. */
                public zone: string;

                /** ListOperationsRequest parent. */
                public parent: string;

                /**
                 * Creates a new ListOperationsRequest instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ListOperationsRequest instance
                 */
                public static create(properties?: google.container.v1.IListOperationsRequest): google.container.v1.ListOperationsRequest;

                /**
                 * Encodes the specified ListOperationsRequest message. Does not implicitly {@link google.container.v1.ListOperationsRequest.verify|verify} messages.
                 * @param message ListOperationsRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IListOperationsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a ListOperationsRequest message.
                 * @param message Plain 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 ListOperationsRequest message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ListOperationsRequest
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.ListOperationsRequest;

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

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

                /**
                 * Gets the default type url for ListOperationsRequest
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a CancelOperationRequest. */
            interface ICancelOperationRequest {

                /** CancelOperationRequest projectId */
                projectId?: (string|null);

                /** CancelOperationRequest zone */
                zone?: (string|null);

                /** CancelOperationRequest operationId */
                operationId?: (string|null);

                /** CancelOperationRequest name */
                name?: (string|null);
            }

            /** Represents a CancelOperationRequest. */
            class CancelOperationRequest implements ICancelOperationRequest {

                /**
                 * Constructs a new CancelOperationRequest.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.ICancelOperationRequest);

                /** CancelOperationRequest projectId. */
                public projectId: string;

                /** CancelOperationRequest zone. */
                public zone: string;

                /** CancelOperationRequest operationId. */
                public operationId: string;

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

                /**
                 * Creates a new CancelOperationRequest instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns CancelOperationRequest instance
                 */
                public static create(properties?: google.container.v1.ICancelOperationRequest): google.container.v1.CancelOperationRequest;

                /**
                 * Encodes the specified CancelOperationRequest message. Does not implicitly {@link google.container.v1.CancelOperationRequest.verify|verify} messages.
                 * @param message CancelOperationRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.ICancelOperationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a CancelOperationRequest message.
                 * @param message Plain 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 CancelOperationRequest message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns CancelOperationRequest
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.CancelOperationRequest;

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

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

                /**
                 * Gets the default type url for CancelOperationRequest
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a ListOperationsResponse. */
            interface IListOperationsResponse {

                /** ListOperationsResponse operations */
                operations?: (google.container.v1.IOperation[]|null);

                /** ListOperationsResponse missingZones */
                missingZones?: (string[]|null);
            }

            /** Represents a ListOperationsResponse. */
            class ListOperationsResponse implements IListOperationsResponse {

                /**
                 * Constructs a new ListOperationsResponse.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IListOperationsResponse);

                /** ListOperationsResponse operations. */
                public operations: google.container.v1.IOperation[];

                /** ListOperationsResponse missingZones. */
                public missingZones: string[];

                /**
                 * Creates a new ListOperationsResponse instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ListOperationsResponse instance
                 */
                public static create(properties?: google.container.v1.IListOperationsResponse): google.container.v1.ListOperationsResponse;

                /**
                 * Encodes the specified ListOperationsResponse message. Does not implicitly {@link google.container.v1.ListOperationsResponse.verify|verify} messages.
                 * @param message ListOperationsResponse message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IListOperationsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a ListOperationsResponse message.
                 * @param message Plain 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 ListOperationsResponse message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ListOperationsResponse
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.ListOperationsResponse;

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

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

                /**
                 * Gets the default type url for ListOperationsResponse
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a GetServerConfigRequest. */
            interface IGetServerConfigRequest {

                /** GetServerConfigRequest projectId */
                projectId?: (string|null);

                /** GetServerConfigRequest zone */
                zone?: (string|null);

                /** GetServerConfigRequest name */
                name?: (string|null);
            }

            /** Represents a GetServerConfigRequest. */
            class GetServerConfigRequest implements IGetServerConfigRequest {

                /**
                 * Constructs a new GetServerConfigRequest.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IGetServerConfigRequest);

                /** GetServerConfigRequest projectId. */
                public projectId: string;

                /** GetServerConfigRequest zone. */
                public zone: string;

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

                /**
                 * Creates a new GetServerConfigRequest instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns GetServerConfigRequest instance
                 */
                public static create(properties?: google.container.v1.IGetServerConfigRequest): google.container.v1.GetServerConfigRequest;

                /**
                 * Encodes the specified GetServerConfigRequest message. Does not implicitly {@link google.container.v1.GetServerConfigRequest.verify|verify} messages.
                 * @param message GetServerConfigRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IGetServerConfigRequest, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a GetServerConfigRequest message.
                 * @param message Plain 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 GetServerConfigRequest message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns GetServerConfigRequest
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.GetServerConfigRequest;

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

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

                /**
                 * Gets the default type url for GetServerConfigRequest
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a ServerConfig. */
            interface IServerConfig {

                /** ServerConfig defaultClusterVersion */
                defaultClusterVersion?: (string|null);

                /** ServerConfig validNodeVersions */
                validNodeVersions?: (string[]|null);

                /** ServerConfig defaultImageType */
                defaultImageType?: (string|null);

                /** ServerConfig validImageTypes */
                validImageTypes?: (string[]|null);

                /** ServerConfig validMasterVersions */
                validMasterVersions?: (string[]|null);

                /** ServerConfig channels */
                channels?: (google.container.v1.ServerConfig.IReleaseChannelConfig[]|null);
            }

            /** Represents a ServerConfig. */
            class ServerConfig implements IServerConfig {

                /**
                 * Constructs a new ServerConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IServerConfig);

                /** ServerConfig defaultClusterVersion. */
                public defaultClusterVersion: string;

                /** ServerConfig validNodeVersions. */
                public validNodeVersions: string[];

                /** ServerConfig defaultImageType. */
                public defaultImageType: string;

                /** ServerConfig validImageTypes. */
                public validImageTypes: string[];

                /** ServerConfig validMasterVersions. */
                public validMasterVersions: string[];

                /** ServerConfig channels. */
                public channels: google.container.v1.ServerConfig.IReleaseChannelConfig[];

                /**
                 * Creates a new ServerConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ServerConfig instance
                 */
                public static create(properties?: google.container.v1.IServerConfig): google.container.v1.ServerConfig;

                /**
                 * Encodes the specified ServerConfig message. Does not implicitly {@link google.container.v1.ServerConfig.verify|verify} messages.
                 * @param message ServerConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IServerConfig, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a ServerConfig message.
                 * @param message Plain 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 ServerConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ServerConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.ServerConfig;

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

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

                /**
                 * Gets the default type url for ServerConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace ServerConfig {

                /** Properties of a ReleaseChannelConfig. */
                interface IReleaseChannelConfig {

                    /** ReleaseChannelConfig channel */
                    channel?: (google.container.v1.ReleaseChannel.Channel|keyof typeof google.container.v1.ReleaseChannel.Channel|null);

                    /** ReleaseChannelConfig defaultVersion */
                    defaultVersion?: (string|null);

                    /** ReleaseChannelConfig validVersions */
                    validVersions?: (string[]|null);

                    /** ReleaseChannelConfig upgradeTargetVersion */
                    upgradeTargetVersion?: (string|null);
                }

                /** Represents a ReleaseChannelConfig. */
                class ReleaseChannelConfig implements IReleaseChannelConfig {

                    /**
                     * Constructs a new ReleaseChannelConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.container.v1.ServerConfig.IReleaseChannelConfig);

                    /** ReleaseChannelConfig channel. */
                    public channel: (google.container.v1.ReleaseChannel.Channel|keyof typeof google.container.v1.ReleaseChannel.Channel);

                    /** ReleaseChannelConfig defaultVersion. */
                    public defaultVersion: string;

                    /** ReleaseChannelConfig validVersions. */
                    public validVersions: string[];

                    /** ReleaseChannelConfig upgradeTargetVersion. */
                    public upgradeTargetVersion: string;

                    /**
                     * Creates a new ReleaseChannelConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ReleaseChannelConfig instance
                     */
                    public static create(properties?: google.container.v1.ServerConfig.IReleaseChannelConfig): google.container.v1.ServerConfig.ReleaseChannelConfig;

                    /**
                     * Encodes the specified ReleaseChannelConfig message. Does not implicitly {@link google.container.v1.ServerConfig.ReleaseChannelConfig.verify|verify} messages.
                     * @param message ReleaseChannelConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.container.v1.ServerConfig.IReleaseChannelConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ReleaseChannelConfig message, length delimited. Does not implicitly {@link google.container.v1.ServerConfig.ReleaseChannelConfig.verify|verify} messages.
                     * @param message ReleaseChannelConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.container.v1.ServerConfig.IReleaseChannelConfig, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

                    /**
                     * Verifies a ReleaseChannelConfig message.
                     * @param message Plain 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 ReleaseChannelConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ReleaseChannelConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.container.v1.ServerConfig.ReleaseChannelConfig;

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

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

                    /**
                     * Gets the default type url for ReleaseChannelConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }
            }

            /** Properties of a CreateNodePoolRequest. */
            interface ICreateNodePoolRequest {

                /** CreateNodePoolRequest projectId */
                projectId?: (string|null);

                /** CreateNodePoolRequest zone */
                zone?: (string|null);

                /** CreateNodePoolRequest clusterId */
                clusterId?: (string|null);

                /** CreateNodePoolRequest nodePool */
                nodePool?: (google.container.v1.INodePool|null);

                /** CreateNodePoolRequest parent */
                parent?: (string|null);
            }

            /** Represents a CreateNodePoolRequest. */
            class CreateNodePoolRequest implements ICreateNodePoolRequest {

                /**
                 * Constructs a new CreateNodePoolRequest.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.ICreateNodePoolRequest);

                /** CreateNodePoolRequest projectId. */
                public projectId: string;

                /** CreateNodePoolRequest zone. */
                public zone: string;

                /** CreateNodePoolRequest clusterId. */
                public clusterId: string;

                /** CreateNodePoolRequest nodePool. */
                public nodePool?: (google.container.v1.INodePool|null);

                /** CreateNodePoolRequest parent. */
                public parent: string;

                /**
                 * Creates a new CreateNodePoolRequest instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns CreateNodePoolRequest instance
                 */
                public static create(properties?: google.container.v1.ICreateNodePoolRequest): google.container.v1.CreateNodePoolRequest;

                /**
                 * Encodes the specified CreateNodePoolRequest message. Does not implicitly {@link google.container.v1.CreateNodePoolRequest.verify|verify} messages.
                 * @param message CreateNodePoolRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.ICreateNodePoolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a CreateNodePoolRequest message.
                 * @param message Plain 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 CreateNodePoolRequest message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns CreateNodePoolRequest
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.CreateNodePoolRequest;

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

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

                /**
                 * Gets the default type url for CreateNodePoolRequest
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a DeleteNodePoolRequest. */
            interface IDeleteNodePoolRequest {

                /** DeleteNodePoolRequest projectId */
                projectId?: (string|null);

                /** DeleteNodePoolRequest zone */
                zone?: (string|null);

                /** DeleteNodePoolRequest clusterId */
                clusterId?: (string|null);

                /** DeleteNodePoolRequest nodePoolId */
                nodePoolId?: (string|null);

                /** DeleteNodePoolRequest name */
                name?: (string|null);
            }

            /** Represents a DeleteNodePoolRequest. */
            class DeleteNodePoolRequest implements IDeleteNodePoolRequest {

                /**
                 * Constructs a new DeleteNodePoolRequest.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IDeleteNodePoolRequest);

                /** DeleteNodePoolRequest projectId. */
                public projectId: string;

                /** DeleteNodePoolRequest zone. */
                public zone: string;

                /** DeleteNodePoolRequest clusterId. */
                public clusterId: string;

                /** DeleteNodePoolRequest nodePoolId. */
                public nodePoolId: string;

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

                /**
                 * Creates a new DeleteNodePoolRequest instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns DeleteNodePoolRequest instance
                 */
                public static create(properties?: google.container.v1.IDeleteNodePoolRequest): google.container.v1.DeleteNodePoolRequest;

                /**
                 * Encodes the specified DeleteNodePoolRequest message. Does not implicitly {@link google.container.v1.DeleteNodePoolRequest.verify|verify} messages.
                 * @param message DeleteNodePoolRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IDeleteNodePoolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a DeleteNodePoolRequest message.
                 * @param message Plain 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 DeleteNodePoolRequest message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns DeleteNodePoolRequest
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.DeleteNodePoolRequest;

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

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

                /**
                 * Gets the default type url for DeleteNodePoolRequest
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a ListNodePoolsRequest. */
            interface IListNodePoolsRequest {

                /** ListNodePoolsRequest projectId */
                projectId?: (string|null);

                /** ListNodePoolsRequest zone */
                zone?: (string|null);

                /** ListNodePoolsRequest clusterId */
                clusterId?: (string|null);

                /** ListNodePoolsRequest parent */
                parent?: (string|null);
            }

            /** Represents a ListNodePoolsRequest. */
            class ListNodePoolsRequest implements IListNodePoolsRequest {

                /**
                 * Constructs a new ListNodePoolsRequest.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IListNodePoolsRequest);

                /** ListNodePoolsRequest projectId. */
                public projectId: string;

                /** ListNodePoolsRequest zone. */
                public zone: string;

                /** ListNodePoolsRequest clusterId. */
                public clusterId: string;

                /** ListNodePoolsRequest parent. */
                public parent: string;

                /**
                 * Creates a new ListNodePoolsRequest instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ListNodePoolsRequest instance
                 */
                public static create(properties?: google.container.v1.IListNodePoolsRequest): google.container.v1.ListNodePoolsRequest;

                /**
                 * Encodes the specified ListNodePoolsRequest message. Does not implicitly {@link google.container.v1.ListNodePoolsRequest.verify|verify} messages.
                 * @param message ListNodePoolsRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IListNodePoolsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a ListNodePoolsRequest message.
                 * @param message Plain 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 ListNodePoolsRequest message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ListNodePoolsRequest
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.ListNodePoolsRequest;

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

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

                /**
                 * Gets the default type url for ListNodePoolsRequest
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a GetNodePoolRequest. */
            interface IGetNodePoolRequest {

                /** GetNodePoolRequest projectId */
                projectId?: (string|null);

                /** GetNodePoolRequest zone */
                zone?: (string|null);

                /** GetNodePoolRequest clusterId */
                clusterId?: (string|null);

                /** GetNodePoolRequest nodePoolId */
                nodePoolId?: (string|null);

                /** GetNodePoolRequest name */
                name?: (string|null);
            }

            /** Represents a GetNodePoolRequest. */
            class GetNodePoolRequest implements IGetNodePoolRequest {

                /**
                 * Constructs a new GetNodePoolRequest.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IGetNodePoolRequest);

                /** GetNodePoolRequest projectId. */
                public projectId: string;

                /** GetNodePoolRequest zone. */
                public zone: string;

                /** GetNodePoolRequest clusterId. */
                public clusterId: string;

                /** GetNodePoolRequest nodePoolId. */
                public nodePoolId: string;

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

                /**
                 * Creates a new GetNodePoolRequest instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns GetNodePoolRequest instance
                 */
                public static create(properties?: google.container.v1.IGetNodePoolRequest): google.container.v1.GetNodePoolRequest;

                /**
                 * Encodes the specified GetNodePoolRequest message. Does not implicitly {@link google.container.v1.GetNodePoolRequest.verify|verify} messages.
                 * @param message GetNodePoolRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IGetNodePoolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a GetNodePoolRequest message.
                 * @param message Plain 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 GetNodePoolRequest message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns GetNodePoolRequest
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.GetNodePoolRequest;

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

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

                /**
                 * Gets the default type url for GetNodePoolRequest
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a BlueGreenSettings. */
            interface IBlueGreenSettings {

                /** BlueGreenSettings standardRolloutPolicy */
                standardRolloutPolicy?: (google.container.v1.BlueGreenSettings.IStandardRolloutPolicy|null);

                /** BlueGreenSettings autoscaledRolloutPolicy */
                autoscaledRolloutPolicy?: (google.container.v1.BlueGreenSettings.IAutoscaledRolloutPolicy|null);

                /** BlueGreenSettings nodePoolSoakDuration */
                nodePoolSoakDuration?: (google.protobuf.IDuration|null);
            }

            /** Represents a BlueGreenSettings. */
            class BlueGreenSettings implements IBlueGreenSettings {

                /**
                 * Constructs a new BlueGreenSettings.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IBlueGreenSettings);

                /** BlueGreenSettings standardRolloutPolicy. */
                public standardRolloutPolicy?: (google.container.v1.BlueGreenSettings.IStandardRolloutPolicy|null);

                /** BlueGreenSettings autoscaledRolloutPolicy. */
                public autoscaledRolloutPolicy?: (google.container.v1.BlueGreenSettings.IAutoscaledRolloutPolicy|null);

                /** BlueGreenSettings nodePoolSoakDuration. */
                public nodePoolSoakDuration?: (google.protobuf.IDuration|null);

                /** BlueGreenSettings rolloutPolicy. */
                public rolloutPolicy?: ("standardRolloutPolicy"|"autoscaledRolloutPolicy");

                /**
                 * Creates a new BlueGreenSettings instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns BlueGreenSettings instance
                 */
                public static create(properties?: google.container.v1.IBlueGreenSettings): google.container.v1.BlueGreenSettings;

                /**
                 * Encodes the specified BlueGreenSettings message. Does not implicitly {@link google.container.v1.BlueGreenSettings.verify|verify} messages.
                 * @param message BlueGreenSettings message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IBlueGreenSettings, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a BlueGreenSettings message.
                 * @param message Plain 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 BlueGreenSettings message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns BlueGreenSettings
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.BlueGreenSettings;

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

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

                /**
                 * Gets the default type url for BlueGreenSettings
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace BlueGreenSettings {

                /** Properties of a StandardRolloutPolicy. */
                interface IStandardRolloutPolicy {

                    /** StandardRolloutPolicy batchPercentage */
                    batchPercentage?: (number|null);

                    /** StandardRolloutPolicy batchNodeCount */
                    batchNodeCount?: (number|null);

                    /** StandardRolloutPolicy batchSoakDuration */
                    batchSoakDuration?: (google.protobuf.IDuration|null);
                }

                /** Represents a StandardRolloutPolicy. */
                class StandardRolloutPolicy implements IStandardRolloutPolicy {

                    /**
                     * Constructs a new StandardRolloutPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.container.v1.BlueGreenSettings.IStandardRolloutPolicy);

                    /** StandardRolloutPolicy batchPercentage. */
                    public batchPercentage?: (number|null);

                    /** StandardRolloutPolicy batchNodeCount. */
                    public batchNodeCount?: (number|null);

                    /** StandardRolloutPolicy batchSoakDuration. */
                    public batchSoakDuration?: (google.protobuf.IDuration|null);

                    /** StandardRolloutPolicy updateBatchSize. */
                    public updateBatchSize?: ("batchPercentage"|"batchNodeCount");

                    /**
                     * Creates a new StandardRolloutPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns StandardRolloutPolicy instance
                     */
                    public static create(properties?: google.container.v1.BlueGreenSettings.IStandardRolloutPolicy): google.container.v1.BlueGreenSettings.StandardRolloutPolicy;

                    /**
                     * Encodes the specified StandardRolloutPolicy message. Does not implicitly {@link google.container.v1.BlueGreenSettings.StandardRolloutPolicy.verify|verify} messages.
                     * @param message StandardRolloutPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.container.v1.BlueGreenSettings.IStandardRolloutPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified StandardRolloutPolicy message, length delimited. Does not implicitly {@link google.container.v1.BlueGreenSettings.StandardRolloutPolicy.verify|verify} messages.
                     * @param message StandardRolloutPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.container.v1.BlueGreenSettings.IStandardRolloutPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

                    /**
                     * Verifies a StandardRolloutPolicy message.
                     * @param message Plain 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 StandardRolloutPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns StandardRolloutPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.container.v1.BlueGreenSettings.StandardRolloutPolicy;

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

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

                    /**
                     * Gets the default type url for StandardRolloutPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AutoscaledRolloutPolicy. */
                interface IAutoscaledRolloutPolicy {

                    /** AutoscaledRolloutPolicy waitForDrainDuration */
                    waitForDrainDuration?: (google.protobuf.IDuration|null);
                }

                /** Represents an AutoscaledRolloutPolicy. */
                class AutoscaledRolloutPolicy implements IAutoscaledRolloutPolicy {

                    /**
                     * Constructs a new AutoscaledRolloutPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.container.v1.BlueGreenSettings.IAutoscaledRolloutPolicy);

                    /** AutoscaledRolloutPolicy waitForDrainDuration. */
                    public waitForDrainDuration?: (google.protobuf.IDuration|null);

                    /**
                     * Creates a new AutoscaledRolloutPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AutoscaledRolloutPolicy instance
                     */
                    public static create(properties?: google.container.v1.BlueGreenSettings.IAutoscaledRolloutPolicy): google.container.v1.BlueGreenSettings.AutoscaledRolloutPolicy;

                    /**
                     * Encodes the specified AutoscaledRolloutPolicy message. Does not implicitly {@link google.container.v1.BlueGreenSettings.AutoscaledRolloutPolicy.verify|verify} messages.
                     * @param message AutoscaledRolloutPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.container.v1.BlueGreenSettings.IAutoscaledRolloutPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AutoscaledRolloutPolicy message, length delimited. Does not implicitly {@link google.container.v1.BlueGreenSettings.AutoscaledRolloutPolicy.verify|verify} messages.
                     * @param message AutoscaledRolloutPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.container.v1.BlueGreenSettings.IAutoscaledRolloutPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

                    /**
                     * Verifies an AutoscaledRolloutPolicy message.
                     * @param message Plain 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 AutoscaledRolloutPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AutoscaledRolloutPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.container.v1.BlueGreenSettings.AutoscaledRolloutPolicy;

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

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

                    /**
                     * Gets the default type url for AutoscaledRolloutPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }
            }

            /** Properties of a NodePool. */
            interface INodePool {

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

                /** NodePool config */
                config?: (google.container.v1.INodeConfig|null);

                /** NodePool initialNodeCount */
                initialNodeCount?: (number|null);

                /** NodePool locations */
                locations?: (string[]|null);

                /** NodePool networkConfig */
                networkConfig?: (google.container.v1.INodeNetworkConfig|null);

                /** NodePool selfLink */
                selfLink?: (string|null);

                /** NodePool version */
                version?: (string|null);

                /** NodePool instanceGroupUrls */
                instanceGroupUrls?: (string[]|null);

                /** NodePool status */
                status?: (google.container.v1.NodePool.Status|keyof typeof google.container.v1.NodePool.Status|null);

                /** NodePool statusMessage */
                statusMessage?: (string|null);

                /** NodePool autoscaling */
                autoscaling?: (google.container.v1.INodePoolAutoscaling|null);

                /** NodePool management */
                management?: (google.container.v1.INodeManagement|null);

                /** NodePool maxPodsConstraint */
                maxPodsConstraint?: (google.container.v1.IMaxPodsConstraint|null);

                /** NodePool conditions */
                conditions?: (google.container.v1.IStatusCondition[]|null);

                /** NodePool podIpv4CidrSize */
                podIpv4CidrSize?: (number|null);

                /** NodePool upgradeSettings */
                upgradeSettings?: (google.container.v1.NodePool.IUpgradeSettings|null);

                /** NodePool placementPolicy */
                placementPolicy?: (google.container.v1.NodePool.IPlacementPolicy|null);

                /** NodePool updateInfo */
                updateInfo?: (google.container.v1.NodePool.IUpdateInfo|null);

                /** NodePool etag */
                etag?: (string|null);

                /** NodePool queuedProvisioning */
                queuedProvisioning?: (google.container.v1.NodePool.IQueuedProvisioning|null);

                /** NodePool bestEffortProvisioning */
                bestEffortProvisioning?: (google.container.v1.IBestEffortProvisioning|null);

                /** NodePool nodeDrainConfig */
                nodeDrainConfig?: (google.container.v1.NodePool.INodeDrainConfig|null);

                /** NodePool maintenancePolicy */
                maintenancePolicy?: (google.container.v1.NodePool.INodePoolMaintenancePolicy|null);
            }

            /** Represents a NodePool. */
            class NodePool implements INodePool {

                /**
                 * Constructs a new NodePool.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.INodePool);

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

                /** NodePool config. */
                public config?: (google.container.v1.INodeConfig|null);

                /** NodePool initialNodeCount. */
                public initialNodeCount: number;

                /** NodePool locations. */
                public locations: string[];

                /** NodePool networkConfig. */
                public networkConfig?: (google.container.v1.INodeNetworkConfig|null);

                /** NodePool selfLink. */
                public selfLink: string;

                /** NodePool version. */
                public version: string;

                /** NodePool instanceGroupUrls. */
                public instanceGroupUrls: string[];

                /** NodePool status. */
                public status: (google.container.v1.NodePool.Status|keyof typeof google.container.v1.NodePool.Status);

                /** NodePool statusMessage. */
                public statusMessage: string;

                /** NodePool autoscaling. */
                public autoscaling?: (google.container.v1.INodePoolAutoscaling|null);

                /** NodePool management. */
                public management?: (google.container.v1.INodeManagement|null);

                /** NodePool maxPodsConstraint. */
                public maxPodsConstraint?: (google.container.v1.IMaxPodsConstraint|null);

                /** NodePool conditions. */
                public conditions: google.container.v1.IStatusCondition[];

                /** NodePool podIpv4CidrSize. */
                public podIpv4CidrSize: number;

                /** NodePool upgradeSettings. */
                public upgradeSettings?: (google.container.v1.NodePool.IUpgradeSettings|null);

                /** NodePool placementPolicy. */
                public placementPolicy?: (google.container.v1.NodePool.IPlacementPolicy|null);

                /** NodePool updateInfo. */
                public updateInfo?: (google.container.v1.NodePool.IUpdateInfo|null);

                /** NodePool etag. */
                public etag: string;

                /** NodePool queuedProvisioning. */
                public queuedProvisioning?: (google.container.v1.NodePool.IQueuedProvisioning|null);

                /** NodePool bestEffortProvisioning. */
                public bestEffortProvisioning?: (google.container.v1.IBestEffortProvisioning|null);

                /** NodePool nodeDrainConfig. */
                public nodeDrainConfig?: (google.container.v1.NodePool.INodeDrainConfig|null);

                /** NodePool maintenancePolicy. */
                public maintenancePolicy?: (google.container.v1.NodePool.INodePoolMaintenancePolicy|null);

                /**
                 * Creates a new NodePool instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns NodePool instance
                 */
                public static create(properties?: google.container.v1.INodePool): google.container.v1.NodePool;

                /**
                 * Encodes the specified NodePool message. Does not implicitly {@link google.container.v1.NodePool.verify|verify} messages.
                 * @param message NodePool message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.INodePool, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a NodePool message.
                 * @param message Plain 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 NodePool message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns NodePool
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.NodePool;

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

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

                /**
                 * Gets the default type url for NodePool
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace NodePool {

                /** Properties of an UpgradeSettings. */
                interface IUpgradeSettings {

                    /** UpgradeSettings maxSurge */
                    maxSurge?: (number|null);

                    /** UpgradeSettings maxUnavailable */
                    maxUnavailable?: (number|null);

                    /** UpgradeSettings strategy */
                    strategy?: (google.container.v1.NodePoolUpdateStrategy|keyof typeof google.container.v1.NodePoolUpdateStrategy|null);

                    /** UpgradeSettings blueGreenSettings */
                    blueGreenSettings?: (google.container.v1.IBlueGreenSettings|null);
                }

                /** Represents an UpgradeSettings. */
                class UpgradeSettings implements IUpgradeSettings {

                    /**
                     * Constructs a new UpgradeSettings.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.container.v1.NodePool.IUpgradeSettings);

                    /** UpgradeSettings maxSurge. */
                    public maxSurge: number;

                    /** UpgradeSettings maxUnavailable. */
                    public maxUnavailable: number;

                    /** UpgradeSettings strategy. */
                    public strategy?: (google.container.v1.NodePoolUpdateStrategy|keyof typeof google.container.v1.NodePoolUpdateStrategy|null);

                    /** UpgradeSettings blueGreenSettings. */
                    public blueGreenSettings?: (google.container.v1.IBlueGreenSettings|null);

                    /**
                     * Creates a new UpgradeSettings instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpgradeSettings instance
                     */
                    public static create(properties?: google.container.v1.NodePool.IUpgradeSettings): google.container.v1.NodePool.UpgradeSettings;

                    /**
                     * Encodes the specified UpgradeSettings message. Does not implicitly {@link google.container.v1.NodePool.UpgradeSettings.verify|verify} messages.
                     * @param message UpgradeSettings message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.container.v1.NodePool.IUpgradeSettings, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpgradeSettings message, length delimited. Does not implicitly {@link google.container.v1.NodePool.UpgradeSettings.verify|verify} messages.
                     * @param message UpgradeSettings message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.container.v1.NodePool.IUpgradeSettings, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

                    /**
                     * Verifies an UpgradeSettings message.
                     * @param message Plain 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 UpgradeSettings message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpgradeSettings
                     */
                    public static fromObject(object: { [k: string]: any }): google.container.v1.NodePool.UpgradeSettings;

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

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

                    /**
                     * Gets the default type url for UpgradeSettings
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateInfo. */
                interface IUpdateInfo {

                    /** UpdateInfo blueGreenInfo */
                    blueGreenInfo?: (google.container.v1.NodePool.UpdateInfo.IBlueGreenInfo|null);
                }

                /** Represents an UpdateInfo. */
                class UpdateInfo implements IUpdateInfo {

                    /**
                     * Constructs a new UpdateInfo.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.container.v1.NodePool.IUpdateInfo);

                    /** UpdateInfo blueGreenInfo. */
                    public blueGreenInfo?: (google.container.v1.NodePool.UpdateInfo.IBlueGreenInfo|null);

                    /**
                     * Creates a new UpdateInfo instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateInfo instance
                     */
                    public static create(properties?: google.container.v1.NodePool.IUpdateInfo): google.container.v1.NodePool.UpdateInfo;

                    /**
                     * Encodes the specified UpdateInfo message. Does not implicitly {@link google.container.v1.NodePool.UpdateInfo.verify|verify} messages.
                     * @param message UpdateInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.container.v1.NodePool.IUpdateInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateInfo message, length delimited. Does not implicitly {@link google.container.v1.NodePool.UpdateInfo.verify|verify} messages.
                     * @param message UpdateInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.container.v1.NodePool.IUpdateInfo, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

                    /**
                     * Verifies an UpdateInfo message.
                     * @param message Plain 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 UpdateInfo message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateInfo
                     */
                    public static fromObject(object: { [k: string]: any }): google.container.v1.NodePool.UpdateInfo;

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

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

                    /**
                     * Gets the default type url for UpdateInfo
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace UpdateInfo {

                    /** Properties of a BlueGreenInfo. */
                    interface IBlueGreenInfo {

                        /** BlueGreenInfo phase */
                        phase?: (google.container.v1.NodePool.UpdateInfo.BlueGreenInfo.Phase|keyof typeof google.container.v1.NodePool.UpdateInfo.BlueGreenInfo.Phase|null);

                        /** BlueGreenInfo blueInstanceGroupUrls */
                        blueInstanceGroupUrls?: (string[]|null);

                        /** BlueGreenInfo greenInstanceGroupUrls */
                        greenInstanceGroupUrls?: (string[]|null);

                        /** BlueGreenInfo bluePoolDeletionStartTime */
                        bluePoolDeletionStartTime?: (string|null);

                        /** BlueGreenInfo greenPoolVersion */
                        greenPoolVersion?: (string|null);
                    }

                    /** Represents a BlueGreenInfo. */
                    class BlueGreenInfo implements IBlueGreenInfo {

                        /**
                         * Constructs a new BlueGreenInfo.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.container.v1.NodePool.UpdateInfo.IBlueGreenInfo);

                        /** BlueGreenInfo phase. */
                        public phase: (google.container.v1.NodePool.UpdateInfo.BlueGreenInfo.Phase|keyof typeof google.container.v1.NodePool.UpdateInfo.BlueGreenInfo.Phase);

                        /** BlueGreenInfo blueInstanceGroupUrls. */
                        public blueInstanceGroupUrls: string[];

                        /** BlueGreenInfo greenInstanceGroupUrls. */
                        public greenInstanceGroupUrls: string[];

                        /** BlueGreenInfo bluePoolDeletionStartTime. */
                        public bluePoolDeletionStartTime: string;

                        /** BlueGreenInfo greenPoolVersion. */
                        public greenPoolVersion: string;

                        /**
                         * Creates a new BlueGreenInfo instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns BlueGreenInfo instance
                         */
                        public static create(properties?: google.container.v1.NodePool.UpdateInfo.IBlueGreenInfo): google.container.v1.NodePool.UpdateInfo.BlueGreenInfo;

                        /**
                         * Encodes the specified BlueGreenInfo message. Does not implicitly {@link google.container.v1.NodePool.UpdateInfo.BlueGreenInfo.verify|verify} messages.
                         * @param message BlueGreenInfo message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.container.v1.NodePool.UpdateInfo.IBlueGreenInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified BlueGreenInfo message, length delimited. Does not implicitly {@link google.container.v1.NodePool.UpdateInfo.BlueGreenInfo.verify|verify} messages.
                         * @param message BlueGreenInfo message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.container.v1.NodePool.UpdateInfo.IBlueGreenInfo, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

                        /**
                         * Verifies a BlueGreenInfo message.
                         * @param message Plain 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 BlueGreenInfo message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns BlueGreenInfo
                         */
                        public static fromObject(object: { [k: string]: any }): google.container.v1.NodePool.UpdateInfo.BlueGreenInfo;

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

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

                        /**
                         * Gets the default type url for BlueGreenInfo
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    namespace BlueGreenInfo {

                        /** Phase enum. */
                        enum Phase {
                            PHASE_UNSPECIFIED = 0,
                            UPDATE_STARTED = 1,
                            CREATING_GREEN_POOL = 2,
                            CORDONING_BLUE_POOL = 3,
                            DRAINING_BLUE_POOL = 4,
                            NODE_POOL_SOAKING = 5,
                            DELETING_BLUE_POOL = 6,
                            ROLLBACK_STARTED = 7
                        }
                    }
                }

                /** Status enum. */
                enum Status {
                    STATUS_UNSPECIFIED = 0,
                    PROVISIONING = 1,
                    RUNNING = 2,
                    RUNNING_WITH_ERROR = 3,
                    RECONCILING = 4,
                    STOPPING = 5,
                    ERROR = 6
                }

                /** Properties of a PlacementPolicy. */
                interface IPlacementPolicy {

                    /** PlacementPolicy type */
                    type?: (google.container.v1.NodePool.PlacementPolicy.Type|keyof typeof google.container.v1.NodePool.PlacementPolicy.Type|null);

                    /** PlacementPolicy tpuTopology */
                    tpuTopology?: (string|null);

                    /** PlacementPolicy policyName */
                    policyName?: (string|null);
                }

                /** Represents a PlacementPolicy. */
                class PlacementPolicy implements IPlacementPolicy {

                    /**
                     * Constructs a new PlacementPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.container.v1.NodePool.IPlacementPolicy);

                    /** PlacementPolicy type. */
                    public type: (google.container.v1.NodePool.PlacementPolicy.Type|keyof typeof google.container.v1.NodePool.PlacementPolicy.Type);

                    /** PlacementPolicy tpuTopology. */
                    public tpuTopology: string;

                    /** PlacementPolicy policyName. */
                    public policyName: string;

                    /**
                     * Creates a new PlacementPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PlacementPolicy instance
                     */
                    public static create(properties?: google.container.v1.NodePool.IPlacementPolicy): google.container.v1.NodePool.PlacementPolicy;

                    /**
                     * Encodes the specified PlacementPolicy message. Does not implicitly {@link google.container.v1.NodePool.PlacementPolicy.verify|verify} messages.
                     * @param message PlacementPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.container.v1.NodePool.IPlacementPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PlacementPolicy message, length delimited. Does not implicitly {@link google.container.v1.NodePool.PlacementPolicy.verify|verify} messages.
                     * @param message PlacementPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.container.v1.NodePool.IPlacementPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

                    /**
                     * Verifies a PlacementPolicy message.
                     * @param message Plain 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 PlacementPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PlacementPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.container.v1.NodePool.PlacementPolicy;

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

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

                    /**
                     * Gets the default type url for PlacementPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace PlacementPolicy {

                    /** Type enum. */
                    enum Type {
                        TYPE_UNSPECIFIED = 0,
                        COMPACT = 1
                    }
                }

                /** Properties of a QueuedProvisioning. */
                interface IQueuedProvisioning {

                    /** QueuedProvisioning enabled */
                    enabled?: (boolean|null);
                }

                /** Represents a QueuedProvisioning. */
                class QueuedProvisioning implements IQueuedProvisioning {

                    /**
                     * Constructs a new QueuedProvisioning.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.container.v1.NodePool.IQueuedProvisioning);

                    /** QueuedProvisioning enabled. */
                    public enabled: boolean;

                    /**
                     * Creates a new QueuedProvisioning instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns QueuedProvisioning instance
                     */
                    public static create(properties?: google.container.v1.NodePool.IQueuedProvisioning): google.container.v1.NodePool.QueuedProvisioning;

                    /**
                     * Encodes the specified QueuedProvisioning message. Does not implicitly {@link google.container.v1.NodePool.QueuedProvisioning.verify|verify} messages.
                     * @param message QueuedProvisioning message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.container.v1.NodePool.IQueuedProvisioning, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified QueuedProvisioning message, length delimited. Does not implicitly {@link google.container.v1.NodePool.QueuedProvisioning.verify|verify} messages.
                     * @param message QueuedProvisioning message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.container.v1.NodePool.IQueuedProvisioning, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

                    /**
                     * Verifies a QueuedProvisioning message.
                     * @param message Plain 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 QueuedProvisioning message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns QueuedProvisioning
                     */
                    public static fromObject(object: { [k: string]: any }): google.container.v1.NodePool.QueuedProvisioning;

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

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

                    /**
                     * Gets the default type url for QueuedProvisioning
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NodeDrainConfig. */
                interface INodeDrainConfig {

                    /** NodeDrainConfig pdbTimeoutDuration */
                    pdbTimeoutDuration?: (google.protobuf.IDuration|null);

                    /** NodeDrainConfig graceTerminationDuration */
                    graceTerminationDuration?: (google.protobuf.IDuration|null);

                    /** NodeDrainConfig respectPdbDuringNodePoolDeletion */
                    respectPdbDuringNodePoolDeletion?: (boolean|null);
                }

                /** Represents a NodeDrainConfig. */
                class NodeDrainConfig implements INodeDrainConfig {

                    /**
                     * Constructs a new NodeDrainConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.container.v1.NodePool.INodeDrainConfig);

                    /** NodeDrainConfig pdbTimeoutDuration. */
                    public pdbTimeoutDuration?: (google.protobuf.IDuration|null);

                    /** NodeDrainConfig graceTerminationDuration. */
                    public graceTerminationDuration?: (google.protobuf.IDuration|null);

                    /** NodeDrainConfig respectPdbDuringNodePoolDeletion. */
                    public respectPdbDuringNodePoolDeletion?: (boolean|null);

                    /**
                     * Creates a new NodeDrainConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NodeDrainConfig instance
                     */
                    public static create(properties?: google.container.v1.NodePool.INodeDrainConfig): google.container.v1.NodePool.NodeDrainConfig;

                    /**
                     * Encodes the specified NodeDrainConfig message. Does not implicitly {@link google.container.v1.NodePool.NodeDrainConfig.verify|verify} messages.
                     * @param message NodeDrainConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.container.v1.NodePool.INodeDrainConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NodeDrainConfig message, length delimited. Does not implicitly {@link google.container.v1.NodePool.NodeDrainConfig.verify|verify} messages.
                     * @param message NodeDrainConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.container.v1.NodePool.INodeDrainConfig, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

                    /**
                     * Verifies a NodeDrainConfig message.
                     * @param message Plain 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 NodeDrainConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NodeDrainConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.container.v1.NodePool.NodeDrainConfig;

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

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

                    /**
                     * Gets the default type url for NodeDrainConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an ExclusionUntilEndOfSupport. */
                interface IExclusionUntilEndOfSupport {

                    /** ExclusionUntilEndOfSupport enabled */
                    enabled?: (boolean|null);

                    /** ExclusionUntilEndOfSupport startTime */
                    startTime?: (google.protobuf.ITimestamp|null);

                    /** ExclusionUntilEndOfSupport endTime */
                    endTime?: (google.protobuf.ITimestamp|null);
                }

                /** Represents an ExclusionUntilEndOfSupport. */
                class ExclusionUntilEndOfSupport implements IExclusionUntilEndOfSupport {

                    /**
                     * Constructs a new ExclusionUntilEndOfSupport.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.container.v1.NodePool.IExclusionUntilEndOfSupport);

                    /** ExclusionUntilEndOfSupport enabled. */
                    public enabled: boolean;

                    /** ExclusionUntilEndOfSupport startTime. */
                    public startTime?: (google.protobuf.ITimestamp|null);

                    /** ExclusionUntilEndOfSupport endTime. */
                    public endTime?: (google.protobuf.ITimestamp|null);

                    /**
                     * Creates a new ExclusionUntilEndOfSupport instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ExclusionUntilEndOfSupport instance
                     */
                    public static create(properties?: google.container.v1.NodePool.IExclusionUntilEndOfSupport): google.container.v1.NodePool.ExclusionUntilEndOfSupport;

                    /**
                     * Encodes the specified ExclusionUntilEndOfSupport message. Does not implicitly {@link google.container.v1.NodePool.ExclusionUntilEndOfSupport.verify|verify} messages.
                     * @param message ExclusionUntilEndOfSupport message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.container.v1.NodePool.IExclusionUntilEndOfSupport, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ExclusionUntilEndOfSupport message, length delimited. Does not implicitly {@link google.container.v1.NodePool.ExclusionUntilEndOfSupport.verify|verify} messages.
                     * @param message ExclusionUntilEndOfSupport message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.container.v1.NodePool.IExclusionUntilEndOfSupport, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

                    /**
                     * Verifies an ExclusionUntilEndOfSupport message.
                     * @param message Plain 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 ExclusionUntilEndOfSupport message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ExclusionUntilEndOfSupport
                     */
                    public static fromObject(object: { [k: string]: any }): google.container.v1.NodePool.ExclusionUntilEndOfSupport;

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

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

                    /**
                     * Gets the default type url for ExclusionUntilEndOfSupport
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NodePoolMaintenancePolicy. */
                interface INodePoolMaintenancePolicy {

                    /** NodePoolMaintenancePolicy exclusionUntilEndOfSupport */
                    exclusionUntilEndOfSupport?: (google.container.v1.NodePool.IExclusionUntilEndOfSupport|null);
                }

                /** Represents a NodePoolMaintenancePolicy. */
                class NodePoolMaintenancePolicy implements INodePoolMaintenancePolicy {

                    /**
                     * Constructs a new NodePoolMaintenancePolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.container.v1.NodePool.INodePoolMaintenancePolicy);

                    /** NodePoolMaintenancePolicy exclusionUntilEndOfSupport. */
                    public exclusionUntilEndOfSupport?: (google.container.v1.NodePool.IExclusionUntilEndOfSupport|null);

                    /**
                     * Creates a new NodePoolMaintenancePolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NodePoolMaintenancePolicy instance
                     */
                    public static create(properties?: google.container.v1.NodePool.INodePoolMaintenancePolicy): google.container.v1.NodePool.NodePoolMaintenancePolicy;

                    /**
                     * Encodes the specified NodePoolMaintenancePolicy message. Does not implicitly {@link google.container.v1.NodePool.NodePoolMaintenancePolicy.verify|verify} messages.
                     * @param message NodePoolMaintenancePolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.container.v1.NodePool.INodePoolMaintenancePolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NodePoolMaintenancePolicy message, length delimited. Does not implicitly {@link google.container.v1.NodePool.NodePoolMaintenancePolicy.verify|verify} messages.
                     * @param message NodePoolMaintenancePolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.container.v1.NodePool.INodePoolMaintenancePolicy, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

                    /**
                     * Verifies a NodePoolMaintenancePolicy message.
                     * @param message Plain 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 NodePoolMaintenancePolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NodePoolMaintenancePolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.container.v1.NodePool.NodePoolMaintenancePolicy;

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

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

                    /**
                     * Gets the default type url for NodePoolMaintenancePolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }
            }

            /** Properties of a NodeManagement. */
            interface INodeManagement {

                /** NodeManagement autoUpgrade */
                autoUpgrade?: (boolean|null);

                /** NodeManagement autoRepair */
                autoRepair?: (boolean|null);

                /** NodeManagement upgradeOptions */
                upgradeOptions?: (google.container.v1.IAutoUpgradeOptions|null);
            }

            /** Represents a NodeManagement. */
            class NodeManagement implements INodeManagement {

                /**
                 * Constructs a new NodeManagement.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.INodeManagement);

                /** NodeManagement autoUpgrade. */
                public autoUpgrade: boolean;

                /** NodeManagement autoRepair. */
                public autoRepair: boolean;

                /** NodeManagement upgradeOptions. */
                public upgradeOptions?: (google.container.v1.IAutoUpgradeOptions|null);

                /**
                 * Creates a new NodeManagement instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns NodeManagement instance
                 */
                public static create(properties?: google.container.v1.INodeManagement): google.container.v1.NodeManagement;

                /**
                 * Encodes the specified NodeManagement message. Does not implicitly {@link google.container.v1.NodeManagement.verify|verify} messages.
                 * @param message NodeManagement message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.INodeManagement, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a NodeManagement message.
                 * @param message Plain 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 NodeManagement message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns NodeManagement
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.NodeManagement;

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

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

                /**
                 * Gets the default type url for NodeManagement
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a BestEffortProvisioning. */
            interface IBestEffortProvisioning {

                /** BestEffortProvisioning enabled */
                enabled?: (boolean|null);

                /** BestEffortProvisioning minProvisionNodes */
                minProvisionNodes?: (number|null);
            }

            /** Represents a BestEffortProvisioning. */
            class BestEffortProvisioning implements IBestEffortProvisioning {

                /**
                 * Constructs a new BestEffortProvisioning.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IBestEffortProvisioning);

                /** BestEffortProvisioning enabled. */
                public enabled: boolean;

                /** BestEffortProvisioning minProvisionNodes. */
                public minProvisionNodes: number;

                /**
                 * Creates a new BestEffortProvisioning instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns BestEffortProvisioning instance
                 */
                public static create(properties?: google.container.v1.IBestEffortProvisioning): google.container.v1.BestEffortProvisioning;

                /**
                 * Encodes the specified BestEffortProvisioning message. Does not implicitly {@link google.container.v1.BestEffortProvisioning.verify|verify} messages.
                 * @param message BestEffortProvisioning message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IBestEffortProvisioning, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a BestEffortProvisioning message.
                 * @param message Plain 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 BestEffortProvisioning message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns BestEffortProvisioning
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.BestEffortProvisioning;

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

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

                /**
                 * Gets the default type url for BestEffortProvisioning
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of an AutoUpgradeOptions. */
            interface IAutoUpgradeOptions {

                /** AutoUpgradeOptions autoUpgradeStartTime */
                autoUpgradeStartTime?: (string|null);

                /** AutoUpgradeOptions description */
                description?: (string|null);
            }

            /** Represents an AutoUpgradeOptions. */
            class AutoUpgradeOptions implements IAutoUpgradeOptions {

                /**
                 * Constructs a new AutoUpgradeOptions.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IAutoUpgradeOptions);

                /** AutoUpgradeOptions autoUpgradeStartTime. */
                public autoUpgradeStartTime: string;

                /** AutoUpgradeOptions description. */
                public description: string;

                /**
                 * Creates a new AutoUpgradeOptions instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns AutoUpgradeOptions instance
                 */
                public static create(properties?: google.container.v1.IAutoUpgradeOptions): google.container.v1.AutoUpgradeOptions;

                /**
                 * Encodes the specified AutoUpgradeOptions message. Does not implicitly {@link google.container.v1.AutoUpgradeOptions.verify|verify} messages.
                 * @param message AutoUpgradeOptions message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IAutoUpgradeOptions, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies an AutoUpgradeOptions message.
                 * @param message Plain 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 AutoUpgradeOptions message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns AutoUpgradeOptions
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.AutoUpgradeOptions;

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

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

                /**
                 * Gets the default type url for AutoUpgradeOptions
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a MaintenancePolicy. */
            interface IMaintenancePolicy {

                /** MaintenancePolicy window */
                window?: (google.container.v1.IMaintenanceWindow|null);

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

                /** MaintenancePolicy disruptionBudget */
                disruptionBudget?: (google.container.v1.IDisruptionBudget|null);
            }

            /** Represents a MaintenancePolicy. */
            class MaintenancePolicy implements IMaintenancePolicy {

                /**
                 * Constructs a new MaintenancePolicy.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IMaintenancePolicy);

                /** MaintenancePolicy window. */
                public window?: (google.container.v1.IMaintenanceWindow|null);

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

                /** MaintenancePolicy disruptionBudget. */
                public disruptionBudget?: (google.container.v1.IDisruptionBudget|null);

                /**
                 * Creates a new MaintenancePolicy instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns MaintenancePolicy instance
                 */
                public static create(properties?: google.container.v1.IMaintenancePolicy): google.container.v1.MaintenancePolicy;

                /**
                 * Encodes the specified MaintenancePolicy message. Does not implicitly {@link google.container.v1.MaintenancePolicy.verify|verify} messages.
                 * @param message MaintenancePolicy message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IMaintenancePolicy, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a MaintenancePolicy message.
                 * @param message Plain 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 MaintenancePolicy message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns MaintenancePolicy
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.MaintenancePolicy;

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

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

                /**
                 * Gets the default type url for MaintenancePolicy
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a DisruptionBudget. */
            interface IDisruptionBudget {

                /** DisruptionBudget minorVersionDisruptionInterval */
                minorVersionDisruptionInterval?: (google.protobuf.IDuration|null);

                /** DisruptionBudget patchVersionDisruptionInterval */
                patchVersionDisruptionInterval?: (google.protobuf.IDuration|null);

                /** DisruptionBudget lastMinorVersionDisruptionTime */
                lastMinorVersionDisruptionTime?: (google.protobuf.ITimestamp|null);

                /** DisruptionBudget lastDisruptionTime */
                lastDisruptionTime?: (google.protobuf.ITimestamp|null);
            }

            /** Represents a DisruptionBudget. */
            class DisruptionBudget implements IDisruptionBudget {

                /**
                 * Constructs a new DisruptionBudget.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IDisruptionBudget);

                /** DisruptionBudget minorVersionDisruptionInterval. */
                public minorVersionDisruptionInterval?: (google.protobuf.IDuration|null);

                /** DisruptionBudget patchVersionDisruptionInterval. */
                public patchVersionDisruptionInterval?: (google.protobuf.IDuration|null);

                /** DisruptionBudget lastMinorVersionDisruptionTime. */
                public lastMinorVersionDisruptionTime?: (google.protobuf.ITimestamp|null);

                /** DisruptionBudget lastDisruptionTime. */
                public lastDisruptionTime?: (google.protobuf.ITimestamp|null);

                /**
                 * Creates a new DisruptionBudget instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns DisruptionBudget instance
                 */
                public static create(properties?: google.container.v1.IDisruptionBudget): google.container.v1.DisruptionBudget;

                /**
                 * Encodes the specified DisruptionBudget message. Does not implicitly {@link google.container.v1.DisruptionBudget.verify|verify} messages.
                 * @param message DisruptionBudget message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IDisruptionBudget, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a DisruptionBudget message.
                 * @param message Plain 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 DisruptionBudget message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns DisruptionBudget
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.DisruptionBudget;

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

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

                /**
                 * Gets the default type url for DisruptionBudget
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a MaintenanceWindow. */
            interface IMaintenanceWindow {

                /** MaintenanceWindow dailyMaintenanceWindow */
                dailyMaintenanceWindow?: (google.container.v1.IDailyMaintenanceWindow|null);

                /** MaintenanceWindow recurringWindow */
                recurringWindow?: (google.container.v1.IRecurringTimeWindow|null);

                /** MaintenanceWindow recurringMaintenanceWindow */
                recurringMaintenanceWindow?: (google.container.v1.IRecurringMaintenanceWindow|null);

                /** MaintenanceWindow maintenanceExclusions */
                maintenanceExclusions?: ({ [k: string]: google.container.v1.ITimeWindow }|null);
            }

            /** Represents a MaintenanceWindow. */
            class MaintenanceWindow implements IMaintenanceWindow {

                /**
                 * Constructs a new MaintenanceWindow.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IMaintenanceWindow);

                /** MaintenanceWindow dailyMaintenanceWindow. */
                public dailyMaintenanceWindow?: (google.container.v1.IDailyMaintenanceWindow|null);

                /** MaintenanceWindow recurringWindow. */
                public recurringWindow?: (google.container.v1.IRecurringTimeWindow|null);

                /** MaintenanceWindow recurringMaintenanceWindow. */
                public recurringMaintenanceWindow?: (google.container.v1.IRecurringMaintenanceWindow|null);

                /** MaintenanceWindow maintenanceExclusions. */
                public maintenanceExclusions: { [k: string]: google.container.v1.ITimeWindow };

                /** MaintenanceWindow policy. */
                public policy?: ("dailyMaintenanceWindow"|"recurringWindow"|"recurringMaintenanceWindow");

                /**
                 * Creates a new MaintenanceWindow instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns MaintenanceWindow instance
                 */
                public static create(properties?: google.container.v1.IMaintenanceWindow): google.container.v1.MaintenanceWindow;

                /**
                 * Encodes the specified MaintenanceWindow message. Does not implicitly {@link google.container.v1.MaintenanceWindow.verify|verify} messages.
                 * @param message MaintenanceWindow message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IMaintenanceWindow, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a MaintenanceWindow message.
                 * @param message Plain 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 MaintenanceWindow message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns MaintenanceWindow
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.MaintenanceWindow;

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

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

                /**
                 * Gets the default type url for MaintenanceWindow
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a TimeWindow. */
            interface ITimeWindow {

                /** TimeWindow maintenanceExclusionOptions */
                maintenanceExclusionOptions?: (google.container.v1.IMaintenanceExclusionOptions|null);

                /** TimeWindow startTime */
                startTime?: (google.protobuf.ITimestamp|null);

                /** TimeWindow endTime */
                endTime?: (google.protobuf.ITimestamp|null);
            }

            /** Represents a TimeWindow. */
            class TimeWindow implements ITimeWindow {

                /**
                 * Constructs a new TimeWindow.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.ITimeWindow);

                /** TimeWindow maintenanceExclusionOptions. */
                public maintenanceExclusionOptions?: (google.container.v1.IMaintenanceExclusionOptions|null);

                /** TimeWindow startTime. */
                public startTime?: (google.protobuf.ITimestamp|null);

                /** TimeWindow endTime. */
                public endTime?: (google.protobuf.ITimestamp|null);

                /** TimeWindow options. */
                public options?: "maintenanceExclusionOptions";

                /**
                 * Creates a new TimeWindow instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns TimeWindow instance
                 */
                public static create(properties?: google.container.v1.ITimeWindow): google.container.v1.TimeWindow;

                /**
                 * Encodes the specified TimeWindow message. Does not implicitly {@link google.container.v1.TimeWindow.verify|verify} messages.
                 * @param message TimeWindow message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.ITimeWindow, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a TimeWindow message.
                 * @param message Plain 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 TimeWindow message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns TimeWindow
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.TimeWindow;

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

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

                /**
                 * Gets the default type url for TimeWindow
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a MaintenanceExclusionOptions. */
            interface IMaintenanceExclusionOptions {

                /** MaintenanceExclusionOptions scope */
                scope?: (google.container.v1.MaintenanceExclusionOptions.Scope|keyof typeof google.container.v1.MaintenanceExclusionOptions.Scope|null);

                /** MaintenanceExclusionOptions endTimeBehavior */
                endTimeBehavior?: (google.container.v1.MaintenanceExclusionOptions.EndTimeBehavior|keyof typeof google.container.v1.MaintenanceExclusionOptions.EndTimeBehavior|null);
            }

            /** Represents a MaintenanceExclusionOptions. */
            class MaintenanceExclusionOptions implements IMaintenanceExclusionOptions {

                /**
                 * Constructs a new MaintenanceExclusionOptions.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IMaintenanceExclusionOptions);

                /** MaintenanceExclusionOptions scope. */
                public scope: (google.container.v1.MaintenanceExclusionOptions.Scope|keyof typeof google.container.v1.MaintenanceExclusionOptions.Scope);

                /** MaintenanceExclusionOptions endTimeBehavior. */
                public endTimeBehavior: (google.container.v1.MaintenanceExclusionOptions.EndTimeBehavior|keyof typeof google.container.v1.MaintenanceExclusionOptions.EndTimeBehavior);

                /**
                 * Creates a new MaintenanceExclusionOptions instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns MaintenanceExclusionOptions instance
                 */
                public static create(properties?: google.container.v1.IMaintenanceExclusionOptions): google.container.v1.MaintenanceExclusionOptions;

                /**
                 * Encodes the specified MaintenanceExclusionOptions message. Does not implicitly {@link google.container.v1.MaintenanceExclusionOptions.verify|verify} messages.
                 * @param message MaintenanceExclusionOptions message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IMaintenanceExclusionOptions, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a MaintenanceExclusionOptions message.
                 * @param message Plain 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 MaintenanceExclusionOptions message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns MaintenanceExclusionOptions
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.MaintenanceExclusionOptions;

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

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

                /**
                 * Gets the default type url for MaintenanceExclusionOptions
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace MaintenanceExclusionOptions {

                /** Scope enum. */
                enum Scope {
                    NO_UPGRADES = 0,
                    NO_MINOR_UPGRADES = 1,
                    NO_MINOR_OR_NODE_UPGRADES = 2
                }

                /** EndTimeBehavior enum. */
                enum EndTimeBehavior {
                    END_TIME_BEHAVIOR_UNSPECIFIED = 0,
                    UNTIL_END_OF_SUPPORT = 1
                }
            }

            /** Properties of a RecurringTimeWindow. */
            interface IRecurringTimeWindow {

                /** RecurringTimeWindow window */
                window?: (google.container.v1.ITimeWindow|null);

                /** RecurringTimeWindow recurrence */
                recurrence?: (string|null);
            }

            /** Represents a RecurringTimeWindow. */
            class RecurringTimeWindow implements IRecurringTimeWindow {

                /**
                 * Constructs a new RecurringTimeWindow.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IRecurringTimeWindow);

                /** RecurringTimeWindow window. */
                public window?: (google.container.v1.ITimeWindow|null);

                /** RecurringTimeWindow recurrence. */
                public recurrence: string;

                /**
                 * Creates a new RecurringTimeWindow instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns RecurringTimeWindow instance
                 */
                public static create(properties?: google.container.v1.IRecurringTimeWindow): google.container.v1.RecurringTimeWindow;

                /**
                 * Encodes the specified RecurringTimeWindow message. Does not implicitly {@link google.container.v1.RecurringTimeWindow.verify|verify} messages.
                 * @param message RecurringTimeWindow message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IRecurringTimeWindow, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a RecurringTimeWindow message.
                 * @param message Plain 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 RecurringTimeWindow message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns RecurringTimeWindow
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.RecurringTimeWindow;

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

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

                /**
                 * Gets the default type url for RecurringTimeWindow
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a RecurringMaintenanceWindow. */
            interface IRecurringMaintenanceWindow {

                /** RecurringMaintenanceWindow delayUntil */
                delayUntil?: (google.type.IDate|null);

                /** RecurringMaintenanceWindow windowStartTime */
                windowStartTime?: (google.type.ITimeOfDay|null);

                /** RecurringMaintenanceWindow windowDuration */
                windowDuration?: (google.protobuf.IDuration|null);

                /** RecurringMaintenanceWindow recurrence */
                recurrence?: (string|null);
            }

            /** Represents a RecurringMaintenanceWindow. */
            class RecurringMaintenanceWindow implements IRecurringMaintenanceWindow {

                /**
                 * Constructs a new RecurringMaintenanceWindow.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IRecurringMaintenanceWindow);

                /** RecurringMaintenanceWindow delayUntil. */
                public delayUntil?: (google.type.IDate|null);

                /** RecurringMaintenanceWindow windowStartTime. */
                public windowStartTime?: (google.type.ITimeOfDay|null);

                /** RecurringMaintenanceWindow windowDuration. */
                public windowDuration?: (google.protobuf.IDuration|null);

                /** RecurringMaintenanceWindow recurrence. */
                public recurrence: string;

                /**
                 * Creates a new RecurringMaintenanceWindow instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns RecurringMaintenanceWindow instance
                 */
                public static create(properties?: google.container.v1.IRecurringMaintenanceWindow): google.container.v1.RecurringMaintenanceWindow;

                /**
                 * Encodes the specified RecurringMaintenanceWindow message. Does not implicitly {@link google.container.v1.RecurringMaintenanceWindow.verify|verify} messages.
                 * @param message RecurringMaintenanceWindow message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IRecurringMaintenanceWindow, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a RecurringMaintenanceWindow message.
                 * @param message Plain 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 RecurringMaintenanceWindow message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns RecurringMaintenanceWindow
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.RecurringMaintenanceWindow;

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

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

                /**
                 * Gets the default type url for RecurringMaintenanceWindow
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a DailyMaintenanceWindow. */
            interface IDailyMaintenanceWindow {

                /** DailyMaintenanceWindow startTime */
                startTime?: (string|null);

                /** DailyMaintenanceWindow duration */
                duration?: (string|null);
            }

            /** Represents a DailyMaintenanceWindow. */
            class DailyMaintenanceWindow implements IDailyMaintenanceWindow {

                /**
                 * Constructs a new DailyMaintenanceWindow.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IDailyMaintenanceWindow);

                /** DailyMaintenanceWindow startTime. */
                public startTime: string;

                /** DailyMaintenanceWindow duration. */
                public duration: string;

                /**
                 * Creates a new DailyMaintenanceWindow instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns DailyMaintenanceWindow instance
                 */
                public static create(properties?: google.container.v1.IDailyMaintenanceWindow): google.container.v1.DailyMaintenanceWindow;

                /**
                 * Encodes the specified DailyMaintenanceWindow message. Does not implicitly {@link google.container.v1.DailyMaintenanceWindow.verify|verify} messages.
                 * @param message DailyMaintenanceWindow message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IDailyMaintenanceWindow, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a DailyMaintenanceWindow message.
                 * @param message Plain 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 DailyMaintenanceWindow message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns DailyMaintenanceWindow
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.DailyMaintenanceWindow;

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

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

                /**
                 * Gets the default type url for DailyMaintenanceWindow
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a SetNodePoolManagementRequest. */
            interface ISetNodePoolManagementRequest {

                /** SetNodePoolManagementRequest projectId */
                projectId?: (string|null);

                /** SetNodePoolManagementRequest zone */
                zone?: (string|null);

                /** SetNodePoolManagementRequest clusterId */
                clusterId?: (string|null);

                /** SetNodePoolManagementRequest nodePoolId */
                nodePoolId?: (string|null);

                /** SetNodePoolManagementRequest management */
                management?: (google.container.v1.INodeManagement|null);

                /** SetNodePoolManagementRequest name */
                name?: (string|null);
            }

            /** Represents a SetNodePoolManagementRequest. */
            class SetNodePoolManagementRequest implements ISetNodePoolManagementRequest {

                /**
                 * Constructs a new SetNodePoolManagementRequest.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.ISetNodePoolManagementRequest);

                /** SetNodePoolManagementRequest projectId. */
                public projectId: string;

                /** SetNodePoolManagementRequest zone. */
                public zone: string;

                /** SetNodePoolManagementRequest clusterId. */
                public clusterId: string;

                /** SetNodePoolManagementRequest nodePoolId. */
                public nodePoolId: string;

                /** SetNodePoolManagementRequest management. */
                public management?: (google.container.v1.INodeManagement|null);

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

                /**
                 * Creates a new SetNodePoolManagementRequest instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns SetNodePoolManagementRequest instance
                 */
                public static create(properties?: google.container.v1.ISetNodePoolManagementRequest): google.container.v1.SetNodePoolManagementRequest;

                /**
                 * Encodes the specified SetNodePoolManagementRequest message. Does not implicitly {@link google.container.v1.SetNodePoolManagementRequest.verify|verify} messages.
                 * @param message SetNodePoolManagementRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.ISetNodePoolManagementRequest, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a SetNodePoolManagementRequest message.
                 * @param message Plain 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 SetNodePoolManagementRequest message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns SetNodePoolManagementRequest
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.SetNodePoolManagementRequest;

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

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

                /**
                 * Gets the default type url for SetNodePoolManagementRequest
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a SetNodePoolSizeRequest. */
            interface ISetNodePoolSizeRequest {

                /** SetNodePoolSizeRequest projectId */
                projectId?: (string|null);

                /** SetNodePoolSizeRequest zone */
                zone?: (string|null);

                /** SetNodePoolSizeRequest clusterId */
                clusterId?: (string|null);

                /** SetNodePoolSizeRequest nodePoolId */
                nodePoolId?: (string|null);

                /** SetNodePoolSizeRequest nodeCount */
                nodeCount?: (number|null);

                /** SetNodePoolSizeRequest name */
                name?: (string|null);
            }

            /** Represents a SetNodePoolSizeRequest. */
            class SetNodePoolSizeRequest implements ISetNodePoolSizeRequest {

                /**
                 * Constructs a new SetNodePoolSizeRequest.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.ISetNodePoolSizeRequest);

                /** SetNodePoolSizeRequest projectId. */
                public projectId: string;

                /** SetNodePoolSizeRequest zone. */
                public zone: string;

                /** SetNodePoolSizeRequest clusterId. */
                public clusterId: string;

                /** SetNodePoolSizeRequest nodePoolId. */
                public nodePoolId: string;

                /** SetNodePoolSizeRequest nodeCount. */
                public nodeCount: number;

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

                /**
                 * Creates a new SetNodePoolSizeRequest instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns SetNodePoolSizeRequest instance
                 */
                public static create(properties?: google.container.v1.ISetNodePoolSizeRequest): google.container.v1.SetNodePoolSizeRequest;

                /**
                 * Encodes the specified SetNodePoolSizeRequest message. Does not implicitly {@link google.container.v1.SetNodePoolSizeRequest.verify|verify} messages.
                 * @param message SetNodePoolSizeRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.ISetNodePoolSizeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a SetNodePoolSizeRequest message.
                 * @param message Plain 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 SetNodePoolSizeRequest message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns SetNodePoolSizeRequest
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.SetNodePoolSizeRequest;

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

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

                /**
                 * Gets the default type url for SetNodePoolSizeRequest
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a CompleteNodePoolUpgradeRequest. */
            interface ICompleteNodePoolUpgradeRequest {

                /** CompleteNodePoolUpgradeRequest name */
                name?: (string|null);
            }

            /** Represents a CompleteNodePoolUpgradeRequest. */
            class CompleteNodePoolUpgradeRequest implements ICompleteNodePoolUpgradeRequest {

                /**
                 * Constructs a new CompleteNodePoolUpgradeRequest.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.ICompleteNodePoolUpgradeRequest);

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

                /**
                 * Creates a new CompleteNodePoolUpgradeRequest instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns CompleteNodePoolUpgradeRequest instance
                 */
                public static create(properties?: google.container.v1.ICompleteNodePoolUpgradeRequest): google.container.v1.CompleteNodePoolUpgradeRequest;

                /**
                 * Encodes the specified CompleteNodePoolUpgradeRequest message. Does not implicitly {@link google.container.v1.CompleteNodePoolUpgradeRequest.verify|verify} messages.
                 * @param message CompleteNodePoolUpgradeRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.ICompleteNodePoolUpgradeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a CompleteNodePoolUpgradeRequest message.
                 * @param message Plain 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 CompleteNodePoolUpgradeRequest message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns CompleteNodePoolUpgradeRequest
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.CompleteNodePoolUpgradeRequest;

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

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

                /**
                 * Gets the default type url for CompleteNodePoolUpgradeRequest
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a RollbackNodePoolUpgradeRequest. */
            interface IRollbackNodePoolUpgradeRequest {

                /** RollbackNodePoolUpgradeRequest projectId */
                projectId?: (string|null);

                /** RollbackNodePoolUpgradeRequest zone */
                zone?: (string|null);

                /** RollbackNodePoolUpgradeRequest clusterId */
                clusterId?: (string|null);

                /** RollbackNodePoolUpgradeRequest nodePoolId */
                nodePoolId?: (string|null);

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

                /** RollbackNodePoolUpgradeRequest respectPdb */
                respectPdb?: (boolean|null);
            }

            /** Represents a RollbackNodePoolUpgradeRequest. */
            class RollbackNodePoolUpgradeRequest implements IRollbackNodePoolUpgradeRequest {

                /**
                 * Constructs a new RollbackNodePoolUpgradeRequest.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IRollbackNodePoolUpgradeRequest);

                /** RollbackNodePoolUpgradeRequest projectId. */
                public projectId: string;

                /** RollbackNodePoolUpgradeRequest zone. */
                public zone: string;

                /** RollbackNodePoolUpgradeRequest clusterId. */
                public clusterId: string;

                /** RollbackNodePoolUpgradeRequest nodePoolId. */
                public nodePoolId: string;

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

                /** RollbackNodePoolUpgradeRequest respectPdb. */
                public respectPdb: boolean;

                /**
                 * Creates a new RollbackNodePoolUpgradeRequest instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns RollbackNodePoolUpgradeRequest instance
                 */
                public static create(properties?: google.container.v1.IRollbackNodePoolUpgradeRequest): google.container.v1.RollbackNodePoolUpgradeRequest;

                /**
                 * Encodes the specified RollbackNodePoolUpgradeRequest message. Does not implicitly {@link google.container.v1.RollbackNodePoolUpgradeRequest.verify|verify} messages.
                 * @param message RollbackNodePoolUpgradeRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IRollbackNodePoolUpgradeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a RollbackNodePoolUpgradeRequest message.
                 * @param message Plain 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 RollbackNodePoolUpgradeRequest message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns RollbackNodePoolUpgradeRequest
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.RollbackNodePoolUpgradeRequest;

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

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

                /**
                 * Gets the default type url for RollbackNodePoolUpgradeRequest
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a ListNodePoolsResponse. */
            interface IListNodePoolsResponse {

                /** ListNodePoolsResponse nodePools */
                nodePools?: (google.container.v1.INodePool[]|null);
            }

            /** Represents a ListNodePoolsResponse. */
            class ListNodePoolsResponse implements IListNodePoolsResponse {

                /**
                 * Constructs a new ListNodePoolsResponse.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IListNodePoolsResponse);

                /** ListNodePoolsResponse nodePools. */
                public nodePools: google.container.v1.INodePool[];

                /**
                 * Creates a new ListNodePoolsResponse instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ListNodePoolsResponse instance
                 */
                public static create(properties?: google.container.v1.IListNodePoolsResponse): google.container.v1.ListNodePoolsResponse;

                /**
                 * Encodes the specified ListNodePoolsResponse message. Does not implicitly {@link google.container.v1.ListNodePoolsResponse.verify|verify} messages.
                 * @param message ListNodePoolsResponse message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IListNodePoolsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a ListNodePoolsResponse message.
                 * @param message Plain 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 ListNodePoolsResponse message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ListNodePoolsResponse
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.ListNodePoolsResponse;

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

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

                /**
                 * Gets the default type url for ListNodePoolsResponse
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a ClusterAutoscaling. */
            interface IClusterAutoscaling {

                /** ClusterAutoscaling enableNodeAutoprovisioning */
                enableNodeAutoprovisioning?: (boolean|null);

                /** ClusterAutoscaling resourceLimits */
                resourceLimits?: (google.container.v1.IResourceLimit[]|null);

                /** ClusterAutoscaling autoscalingProfile */
                autoscalingProfile?: (google.container.v1.ClusterAutoscaling.AutoscalingProfile|keyof typeof google.container.v1.ClusterAutoscaling.AutoscalingProfile|null);

                /** ClusterAutoscaling autoprovisioningNodePoolDefaults */
                autoprovisioningNodePoolDefaults?: (google.container.v1.IAutoprovisioningNodePoolDefaults|null);

                /** ClusterAutoscaling autoprovisioningLocations */
                autoprovisioningLocations?: (string[]|null);

                /** ClusterAutoscaling defaultComputeClassConfig */
                defaultComputeClassConfig?: (google.container.v1.IDefaultComputeClassConfig|null);

                /** ClusterAutoscaling autopilotGeneralProfile */
                autopilotGeneralProfile?: (google.container.v1.ClusterAutoscaling.AutopilotGeneralProfile|keyof typeof google.container.v1.ClusterAutoscaling.AutopilotGeneralProfile|null);
            }

            /** Represents a ClusterAutoscaling. */
            class ClusterAutoscaling implements IClusterAutoscaling {

                /**
                 * Constructs a new ClusterAutoscaling.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IClusterAutoscaling);

                /** ClusterAutoscaling enableNodeAutoprovisioning. */
                public enableNodeAutoprovisioning: boolean;

                /** ClusterAutoscaling resourceLimits. */
                public resourceLimits: google.container.v1.IResourceLimit[];

                /** ClusterAutoscaling autoscalingProfile. */
                public autoscalingProfile: (google.container.v1.ClusterAutoscaling.AutoscalingProfile|keyof typeof google.container.v1.ClusterAutoscaling.AutoscalingProfile);

                /** ClusterAutoscaling autoprovisioningNodePoolDefaults. */
                public autoprovisioningNodePoolDefaults?: (google.container.v1.IAutoprovisioningNodePoolDefaults|null);

                /** ClusterAutoscaling autoprovisioningLocations. */
                public autoprovisioningLocations: string[];

                /** ClusterAutoscaling defaultComputeClassConfig. */
                public defaultComputeClassConfig?: (google.container.v1.IDefaultComputeClassConfig|null);

                /** ClusterAutoscaling autopilotGeneralProfile. */
                public autopilotGeneralProfile: (google.container.v1.ClusterAutoscaling.AutopilotGeneralProfile|keyof typeof google.container.v1.ClusterAutoscaling.AutopilotGeneralProfile);

                /**
                 * Creates a new ClusterAutoscaling instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ClusterAutoscaling instance
                 */
                public static create(properties?: google.container.v1.IClusterAutoscaling): google.container.v1.ClusterAutoscaling;

                /**
                 * Encodes the specified ClusterAutoscaling message. Does not implicitly {@link google.container.v1.ClusterAutoscaling.verify|verify} messages.
                 * @param message ClusterAutoscaling message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IClusterAutoscaling, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a ClusterAutoscaling message.
                 * @param message Plain 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 ClusterAutoscaling message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ClusterAutoscaling
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.ClusterAutoscaling;

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

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

                /**
                 * Gets the default type url for ClusterAutoscaling
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace ClusterAutoscaling {

                /** AutoscalingProfile enum. */
                enum AutoscalingProfile {
                    PROFILE_UNSPECIFIED = 0,
                    OPTIMIZE_UTILIZATION = 1,
                    BALANCED = 2
                }

                /** AutopilotGeneralProfile enum. */
                enum AutopilotGeneralProfile {
                    AUTOPILOT_GENERAL_PROFILE_UNSPECIFIED = 0,
                    NO_PERFORMANCE = 1,
                    NONE = 2
                }
            }

            /** Properties of an AutoprovisioningNodePoolDefaults. */
            interface IAutoprovisioningNodePoolDefaults {

                /** AutoprovisioningNodePoolDefaults oauthScopes */
                oauthScopes?: (string[]|null);

                /** AutoprovisioningNodePoolDefaults serviceAccount */
                serviceAccount?: (string|null);

                /** AutoprovisioningNodePoolDefaults upgradeSettings */
                upgradeSettings?: (google.container.v1.NodePool.IUpgradeSettings|null);

                /** AutoprovisioningNodePoolDefaults management */
                management?: (google.container.v1.INodeManagement|null);

                /** AutoprovisioningNodePoolDefaults minCpuPlatform */
                minCpuPlatform?: (string|null);

                /** AutoprovisioningNodePoolDefaults diskSizeGb */
                diskSizeGb?: (number|null);

                /** AutoprovisioningNodePoolDefaults diskType */
                diskType?: (string|null);

                /** AutoprovisioningNodePoolDefaults shieldedInstanceConfig */
                shieldedInstanceConfig?: (google.container.v1.IShieldedInstanceConfig|null);

                /** AutoprovisioningNodePoolDefaults bootDiskKmsKey */
                bootDiskKmsKey?: (string|null);

                /** AutoprovisioningNodePoolDefaults imageType */
                imageType?: (string|null);

                /** AutoprovisioningNodePoolDefaults insecureKubeletReadonlyPortEnabled */
                insecureKubeletReadonlyPortEnabled?: (boolean|null);
            }

            /** Represents an AutoprovisioningNodePoolDefaults. */
            class AutoprovisioningNodePoolDefaults implements IAutoprovisioningNodePoolDefaults {

                /**
                 * Constructs a new AutoprovisioningNodePoolDefaults.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IAutoprovisioningNodePoolDefaults);

                /** AutoprovisioningNodePoolDefaults oauthScopes. */
                public oauthScopes: string[];

                /** AutoprovisioningNodePoolDefaults serviceAccount. */
                public serviceAccount: string;

                /** AutoprovisioningNodePoolDefaults upgradeSettings. */
                public upgradeSettings?: (google.container.v1.NodePool.IUpgradeSettings|null);

                /** AutoprovisioningNodePoolDefaults management. */
                public management?: (google.container.v1.INodeManagement|null);

                /** AutoprovisioningNodePoolDefaults minCpuPlatform. */
                public minCpuPlatform: string;

                /** AutoprovisioningNodePoolDefaults diskSizeGb. */
                public diskSizeGb: number;

                /** AutoprovisioningNodePoolDefaults diskType. */
                public diskType: string;

                /** AutoprovisioningNodePoolDefaults shieldedInstanceConfig. */
                public shieldedInstanceConfig?: (google.container.v1.IShieldedInstanceConfig|null);

                /** AutoprovisioningNodePoolDefaults bootDiskKmsKey. */
                public bootDiskKmsKey: string;

                /** AutoprovisioningNodePoolDefaults imageType. */
                public imageType: string;

                /** AutoprovisioningNodePoolDefaults insecureKubeletReadonlyPortEnabled. */
                public insecureKubeletReadonlyPortEnabled?: (boolean|null);

                /**
                 * Creates a new AutoprovisioningNodePoolDefaults instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns AutoprovisioningNodePoolDefaults instance
                 */
                public static create(properties?: google.container.v1.IAutoprovisioningNodePoolDefaults): google.container.v1.AutoprovisioningNodePoolDefaults;

                /**
                 * Encodes the specified AutoprovisioningNodePoolDefaults message. Does not implicitly {@link google.container.v1.AutoprovisioningNodePoolDefaults.verify|verify} messages.
                 * @param message AutoprovisioningNodePoolDefaults message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IAutoprovisioningNodePoolDefaults, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies an AutoprovisioningNodePoolDefaults message.
                 * @param message Plain 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 AutoprovisioningNodePoolDefaults message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns AutoprovisioningNodePoolDefaults
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.AutoprovisioningNodePoolDefaults;

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

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

                /**
                 * Gets the default type url for AutoprovisioningNodePoolDefaults
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a ResourceLimit. */
            interface IResourceLimit {

                /** ResourceLimit resourceType */
                resourceType?: (string|null);

                /** ResourceLimit minimum */
                minimum?: (number|Long|string|null);

                /** ResourceLimit maximum */
                maximum?: (number|Long|string|null);
            }

            /** Represents a ResourceLimit. */
            class ResourceLimit implements IResourceLimit {

                /**
                 * Constructs a new ResourceLimit.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IResourceLimit);

                /** ResourceLimit resourceType. */
                public resourceType: string;

                /** ResourceLimit minimum. */
                public minimum: (number|Long|string);

                /** ResourceLimit maximum. */
                public maximum: (number|Long|string);

                /**
                 * Creates a new ResourceLimit instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ResourceLimit instance
                 */
                public static create(properties?: google.container.v1.IResourceLimit): google.container.v1.ResourceLimit;

                /**
                 * Encodes the specified ResourceLimit message. Does not implicitly {@link google.container.v1.ResourceLimit.verify|verify} messages.
                 * @param message ResourceLimit message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IResourceLimit, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a ResourceLimit message.
                 * @param message Plain 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 ResourceLimit message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ResourceLimit
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.ResourceLimit;

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

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

                /**
                 * Gets the default type url for ResourceLimit
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a DefaultComputeClassConfig. */
            interface IDefaultComputeClassConfig {

                /** DefaultComputeClassConfig enabled */
                enabled?: (boolean|null);
            }

            /** Represents a DefaultComputeClassConfig. */
            class DefaultComputeClassConfig implements IDefaultComputeClassConfig {

                /**
                 * Constructs a new DefaultComputeClassConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IDefaultComputeClassConfig);

                /** DefaultComputeClassConfig enabled. */
                public enabled: boolean;

                /**
                 * Creates a new DefaultComputeClassConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns DefaultComputeClassConfig instance
                 */
                public static create(properties?: google.container.v1.IDefaultComputeClassConfig): google.container.v1.DefaultComputeClassConfig;

                /**
                 * Encodes the specified DefaultComputeClassConfig message. Does not implicitly {@link google.container.v1.DefaultComputeClassConfig.verify|verify} messages.
                 * @param message DefaultComputeClassConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IDefaultComputeClassConfig, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Verifies a DefaultComputeClassConfig message.
                 * @param message Plain 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 DefaultComputeClassConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns DefaultComputeClassConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.DefaultComputeClassConfig;

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

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

                /**
                 * Gets the default type url for DefaultComputeClassConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a NodePoolAutoscaling. */
            interface INodePoolAutoscaling {

                /** NodePoolAutoscaling enabled */
                enabled?: (boolean|null);

                /** NodePoolAutoscaling minNodeCount */
                minNodeCount?: (number|null);

                /** NodePoolAutoscaling maxNodeCount */
                maxNodeCount?: (number|null);

                /** NodePoolAutoscaling autoprovisioned */
                autoprovisioned?: (boolean|null);

                /** NodePoolAutoscaling locationPolicy */
                locationPolicy?: (google.container.v1.NodePoolAutoscaling.LocationPolicy|keyof typeof google.container.v1.NodePoolAutoscaling.LocationPolicy|null);

                /** NodePoolAutoscaling totalMinNodeCount */
                totalMinNodeCount?: (number|null);

                /** NodePoolAutoscaling totalMaxNodeCount */
                totalMaxNodeCount?: (number|null);
            }

            /** Represents a NodePoolAutoscaling. */
            class NodePoolAutoscaling implements INodePoolAutoscaling {

                /**
                 * Constructs a new NodePoolAutoscaling.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.INodePoolAutoscaling);

                /** NodePoolAutoscaling enabled. */
                public enabled: boolean;

                /** NodePoolAutoscaling minNodeCount. */
                public minNodeCount: number;

                /** NodePoolAutoscaling maxNodeCount. */
                public maxNodeCount: number;

                /** NodePoolAutoscaling autoprovisioned. */
                public autoprovisioned: boolean;

                /** NodePoolAutoscaling locationPolicy. */
                public locationPolicy: (google.container.v1.NodePoolAutoscaling.LocationPolicy|keyof typeof google.container.v1.NodePoolAutoscaling.LocationPolicy);

                /** NodePoolAutoscaling totalMinNodeCount. */
                public totalMinNodeCount: number;

                /** NodePoolAutoscaling totalMaxNodeCount. */
                public totalMaxNodeCount: number;

                /**
                 * Creates a new NodePoolAutoscaling instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns NodePoolAutoscaling instance
                 */
                public static create(properties?: google.container.v1.INodePoolAutoscaling): google.container.v1.NodePoolAutoscaling;

                /**
                 * Encodes the specified NodePoolAutoscaling message. Does not implicitly {@link google.container.v1.NodePoolAutoscaling.verify|verify} messages.
                 * @param message NodePoolAutoscaling message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.INodePoolAutoscaling, writer?: $protobuf.Writer): $protobuf.Writer;

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

                /**
                 * Decodes a NodePoolAutoscaling message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns NodePoolAutoscaling
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.NodePoolAutoscaling;

                /**
                 * Decodes a NodePoolAutoscaling message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns NodePoolAutoscaling
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.NodePoolAutoscaling;

                /**
                 * Verifies a NodePoolAutoscaling message.
                 * @param message Plain 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 NodePoolAutoscaling message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns NodePoolAutoscaling
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.NodePoolAutoscaling;

                /**
                 * Creates a plain object from a NodePoolAutoscaling message. Also converts values to other types if specified.
                 * @param message NodePoolAutoscaling
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1.NodePoolAutoscaling, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this NodePoolAutoscaling to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for NodePoolAutoscaling
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace NodePoolAutoscaling {

                /** LocationPolicy enum. */
                enum LocationPolicy {
                    LOCATION_POLICY_UNSPECIFIED = 0,
                    BALANCED = 1,
                    ANY = 2
                }
            }

            /** Properties of a SetLabelsRequest. */
            interface ISetLabelsRequest {

                /** SetLabelsRequest projectId */
                projectId?: (string|null);

                /** SetLabelsRequest zone */
                zone?: (string|null);

                /** SetLabelsRequest clusterId */
                clusterId?: (string|null);

                /** SetLabelsRequest resourceLabels */
                resourceLabels?: ({ [k: string]: string }|null);

                /** SetLabelsRequest labelFingerprint */
                labelFingerprint?: (string|null);

                /** SetLabelsRequest name */
                name?: (string|null);
            }

            /** Represents a SetLabelsRequest. */
            class SetLabelsRequest implements ISetLabelsRequest {

                /**
                 * Constructs a new SetLabelsRequest.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.ISetLabelsRequest);

                /** SetLabelsRequest projectId. */
                public projectId: string;

                /** SetLabelsRequest zone. */
                public zone: string;

                /** SetLabelsRequest clusterId. */
                public clusterId: string;

                /** SetLabelsRequest resourceLabels. */
                public resourceLabels: { [k: string]: string };

                /** SetLabelsRequest labelFingerprint. */
                public labelFingerprint: string;

                /** SetLabelsRequest name. */
                public name: string;

                /**
                 * Creates a new SetLabelsRequest instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns SetLabelsRequest instance
                 */
                public static create(properties?: google.container.v1.ISetLabelsRequest): google.container.v1.SetLabelsRequest;

                /**
                 * Encodes the specified SetLabelsRequest message. Does not implicitly {@link google.container.v1.SetLabelsRequest.verify|verify} messages.
                 * @param message SetLabelsRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.ISetLabelsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified SetLabelsRequest message, length delimited. Does not implicitly {@link google.container.v1.SetLabelsRequest.verify|verify} messages.
                 * @param message SetLabelsRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1.ISetLabelsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a SetLabelsRequest message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns SetLabelsRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.SetLabelsRequest;

                /**
                 * Decodes a SetLabelsRequest message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns SetLabelsRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.SetLabelsRequest;

                /**
                 * Verifies a SetLabelsRequest message.
                 * @param message Plain 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 SetLabelsRequest message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns SetLabelsRequest
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.SetLabelsRequest;

                /**
                 * Creates a plain object from a SetLabelsRequest message. Also converts values to other types if specified.
                 * @param message SetLabelsRequest
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1.SetLabelsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this SetLabelsRequest to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for SetLabelsRequest
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a SetLegacyAbacRequest. */
            interface ISetLegacyAbacRequest {

                /** SetLegacyAbacRequest projectId */
                projectId?: (string|null);

                /** SetLegacyAbacRequest zone */
                zone?: (string|null);

                /** SetLegacyAbacRequest clusterId */
                clusterId?: (string|null);

                /** SetLegacyAbacRequest enabled */
                enabled?: (boolean|null);

                /** SetLegacyAbacRequest name */
                name?: (string|null);
            }

            /** Represents a SetLegacyAbacRequest. */
            class SetLegacyAbacRequest implements ISetLegacyAbacRequest {

                /**
                 * Constructs a new SetLegacyAbacRequest.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.ISetLegacyAbacRequest);

                /** SetLegacyAbacRequest projectId. */
                public projectId: string;

                /** SetLegacyAbacRequest zone. */
                public zone: string;

                /** SetLegacyAbacRequest clusterId. */
                public clusterId: string;

                /** SetLegacyAbacRequest enabled. */
                public enabled: boolean;

                /** SetLegacyAbacRequest name. */
                public name: string;

                /**
                 * Creates a new SetLegacyAbacRequest instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns SetLegacyAbacRequest instance
                 */
                public static create(properties?: google.container.v1.ISetLegacyAbacRequest): google.container.v1.SetLegacyAbacRequest;

                /**
                 * Encodes the specified SetLegacyAbacRequest message. Does not implicitly {@link google.container.v1.SetLegacyAbacRequest.verify|verify} messages.
                 * @param message SetLegacyAbacRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.ISetLegacyAbacRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified SetLegacyAbacRequest message, length delimited. Does not implicitly {@link google.container.v1.SetLegacyAbacRequest.verify|verify} messages.
                 * @param message SetLegacyAbacRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1.ISetLegacyAbacRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a SetLegacyAbacRequest message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns SetLegacyAbacRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.SetLegacyAbacRequest;

                /**
                 * Decodes a SetLegacyAbacRequest message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns SetLegacyAbacRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.SetLegacyAbacRequest;

                /**
                 * Verifies a SetLegacyAbacRequest message.
                 * @param message Plain 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 SetLegacyAbacRequest message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns SetLegacyAbacRequest
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.SetLegacyAbacRequest;

                /**
                 * Creates a plain object from a SetLegacyAbacRequest message. Also converts values to other types if specified.
                 * @param message SetLegacyAbacRequest
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1.SetLegacyAbacRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this SetLegacyAbacRequest to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for SetLegacyAbacRequest
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a StartIPRotationRequest. */
            interface IStartIPRotationRequest {

                /** StartIPRotationRequest projectId */
                projectId?: (string|null);

                /** StartIPRotationRequest zone */
                zone?: (string|null);

                /** StartIPRotationRequest clusterId */
                clusterId?: (string|null);

                /** StartIPRotationRequest name */
                name?: (string|null);

                /** StartIPRotationRequest rotateCredentials */
                rotateCredentials?: (boolean|null);
            }

            /** Represents a StartIPRotationRequest. */
            class StartIPRotationRequest implements IStartIPRotationRequest {

                /**
                 * Constructs a new StartIPRotationRequest.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IStartIPRotationRequest);

                /** StartIPRotationRequest projectId. */
                public projectId: string;

                /** StartIPRotationRequest zone. */
                public zone: string;

                /** StartIPRotationRequest clusterId. */
                public clusterId: string;

                /** StartIPRotationRequest name. */
                public name: string;

                /** StartIPRotationRequest rotateCredentials. */
                public rotateCredentials: boolean;

                /**
                 * Creates a new StartIPRotationRequest instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns StartIPRotationRequest instance
                 */
                public static create(properties?: google.container.v1.IStartIPRotationRequest): google.container.v1.StartIPRotationRequest;

                /**
                 * Encodes the specified StartIPRotationRequest message. Does not implicitly {@link google.container.v1.StartIPRotationRequest.verify|verify} messages.
                 * @param message StartIPRotationRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IStartIPRotationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified StartIPRotationRequest message, length delimited. Does not implicitly {@link google.container.v1.StartIPRotationRequest.verify|verify} messages.
                 * @param message StartIPRotationRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1.IStartIPRotationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a StartIPRotationRequest message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns StartIPRotationRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.StartIPRotationRequest;

                /**
                 * Decodes a StartIPRotationRequest message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns StartIPRotationRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.StartIPRotationRequest;

                /**
                 * Verifies a StartIPRotationRequest message.
                 * @param message Plain 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 StartIPRotationRequest message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns StartIPRotationRequest
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.StartIPRotationRequest;

                /**
                 * Creates a plain object from a StartIPRotationRequest message. Also converts values to other types if specified.
                 * @param message StartIPRotationRequest
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1.StartIPRotationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this StartIPRotationRequest to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for StartIPRotationRequest
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a CompleteIPRotationRequest. */
            interface ICompleteIPRotationRequest {

                /** CompleteIPRotationRequest projectId */
                projectId?: (string|null);

                /** CompleteIPRotationRequest zone */
                zone?: (string|null);

                /** CompleteIPRotationRequest clusterId */
                clusterId?: (string|null);

                /** CompleteIPRotationRequest name */
                name?: (string|null);
            }

            /** Represents a CompleteIPRotationRequest. */
            class CompleteIPRotationRequest implements ICompleteIPRotationRequest {

                /**
                 * Constructs a new CompleteIPRotationRequest.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.ICompleteIPRotationRequest);

                /** CompleteIPRotationRequest projectId. */
                public projectId: string;

                /** CompleteIPRotationRequest zone. */
                public zone: string;

                /** CompleteIPRotationRequest clusterId. */
                public clusterId: string;

                /** CompleteIPRotationRequest name. */
                public name: string;

                /**
                 * Creates a new CompleteIPRotationRequest instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns CompleteIPRotationRequest instance
                 */
                public static create(properties?: google.container.v1.ICompleteIPRotationRequest): google.container.v1.CompleteIPRotationRequest;

                /**
                 * Encodes the specified CompleteIPRotationRequest message. Does not implicitly {@link google.container.v1.CompleteIPRotationRequest.verify|verify} messages.
                 * @param message CompleteIPRotationRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.ICompleteIPRotationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified CompleteIPRotationRequest message, length delimited. Does not implicitly {@link google.container.v1.CompleteIPRotationRequest.verify|verify} messages.
                 * @param message CompleteIPRotationRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1.ICompleteIPRotationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a CompleteIPRotationRequest message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns CompleteIPRotationRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.CompleteIPRotationRequest;

                /**
                 * Decodes a CompleteIPRotationRequest message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns CompleteIPRotationRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.CompleteIPRotationRequest;

                /**
                 * Verifies a CompleteIPRotationRequest message.
                 * @param message Plain 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 CompleteIPRotationRequest message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns CompleteIPRotationRequest
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.CompleteIPRotationRequest;

                /**
                 * Creates a plain object from a CompleteIPRotationRequest message. Also converts values to other types if specified.
                 * @param message CompleteIPRotationRequest
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1.CompleteIPRotationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this CompleteIPRotationRequest to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for CompleteIPRotationRequest
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of an AcceleratorConfig. */
            interface IAcceleratorConfig {

                /** AcceleratorConfig acceleratorCount */
                acceleratorCount?: (number|Long|string|null);

                /** AcceleratorConfig acceleratorType */
                acceleratorType?: (string|null);

                /** AcceleratorConfig gpuPartitionSize */
                gpuPartitionSize?: (string|null);

                /** AcceleratorConfig gpuSharingConfig */
                gpuSharingConfig?: (google.container.v1.IGPUSharingConfig|null);

                /** AcceleratorConfig gpuDriverInstallationConfig */
                gpuDriverInstallationConfig?: (google.container.v1.IGPUDriverInstallationConfig|null);
            }

            /** Represents an AcceleratorConfig. */
            class AcceleratorConfig implements IAcceleratorConfig {

                /**
                 * Constructs a new AcceleratorConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IAcceleratorConfig);

                /** AcceleratorConfig acceleratorCount. */
                public acceleratorCount: (number|Long|string);

                /** AcceleratorConfig acceleratorType. */
                public acceleratorType: string;

                /** AcceleratorConfig gpuPartitionSize. */
                public gpuPartitionSize: string;

                /** AcceleratorConfig gpuSharingConfig. */
                public gpuSharingConfig?: (google.container.v1.IGPUSharingConfig|null);

                /** AcceleratorConfig gpuDriverInstallationConfig. */
                public gpuDriverInstallationConfig?: (google.container.v1.IGPUDriverInstallationConfig|null);

                /**
                 * Creates a new AcceleratorConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns AcceleratorConfig instance
                 */
                public static create(properties?: google.container.v1.IAcceleratorConfig): google.container.v1.AcceleratorConfig;

                /**
                 * Encodes the specified AcceleratorConfig message. Does not implicitly {@link google.container.v1.AcceleratorConfig.verify|verify} messages.
                 * @param message AcceleratorConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IAcceleratorConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified AcceleratorConfig message, length delimited. Does not implicitly {@link google.container.v1.AcceleratorConfig.verify|verify} messages.
                 * @param message AcceleratorConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1.IAcceleratorConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes an AcceleratorConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns AcceleratorConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.AcceleratorConfig;

                /**
                 * Decodes an AcceleratorConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns AcceleratorConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.AcceleratorConfig;

                /**
                 * Verifies an AcceleratorConfig message.
                 * @param message Plain 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 AcceleratorConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns AcceleratorConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.AcceleratorConfig;

                /**
                 * Creates a plain object from an AcceleratorConfig message. Also converts values to other types if specified.
                 * @param message AcceleratorConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1.AcceleratorConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this AcceleratorConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for AcceleratorConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a GPUSharingConfig. */
            interface IGPUSharingConfig {

                /** GPUSharingConfig maxSharedClientsPerGpu */
                maxSharedClientsPerGpu?: (number|Long|string|null);

                /** GPUSharingConfig gpuSharingStrategy */
                gpuSharingStrategy?: (google.container.v1.GPUSharingConfig.GPUSharingStrategy|keyof typeof google.container.v1.GPUSharingConfig.GPUSharingStrategy|null);
            }

            /** Represents a GPUSharingConfig. */
            class GPUSharingConfig implements IGPUSharingConfig {

                /**
                 * Constructs a new GPUSharingConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IGPUSharingConfig);

                /** GPUSharingConfig maxSharedClientsPerGpu. */
                public maxSharedClientsPerGpu: (number|Long|string);

                /** GPUSharingConfig gpuSharingStrategy. */
                public gpuSharingStrategy?: (google.container.v1.GPUSharingConfig.GPUSharingStrategy|keyof typeof google.container.v1.GPUSharingConfig.GPUSharingStrategy|null);

                /**
                 * Creates a new GPUSharingConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns GPUSharingConfig instance
                 */
                public static create(properties?: google.container.v1.IGPUSharingConfig): google.container.v1.GPUSharingConfig;

                /**
                 * Encodes the specified GPUSharingConfig message. Does not implicitly {@link google.container.v1.GPUSharingConfig.verify|verify} messages.
                 * @param message GPUSharingConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IGPUSharingConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified GPUSharingConfig message, length delimited. Does not implicitly {@link google.container.v1.GPUSharingConfig.verify|verify} messages.
                 * @param message GPUSharingConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1.IGPUSharingConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a GPUSharingConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns GPUSharingConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.GPUSharingConfig;

                /**
                 * Decodes a GPUSharingConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns GPUSharingConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.GPUSharingConfig;

                /**
                 * Verifies a GPUSharingConfig message.
                 * @param message Plain 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 GPUSharingConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns GPUSharingConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.GPUSharingConfig;

                /**
                 * Creates a plain object from a GPUSharingConfig message. Also converts values to other types if specified.
                 * @param message GPUSharingConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1.GPUSharingConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this GPUSharingConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for GPUSharingConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace GPUSharingConfig {

                /** GPUSharingStrategy enum. */
                enum GPUSharingStrategy {
                    GPU_SHARING_STRATEGY_UNSPECIFIED = 0,
                    TIME_SHARING = 1,
                    MPS = 2
                }
            }

            /** Properties of a GPUDriverInstallationConfig. */
            interface IGPUDriverInstallationConfig {

                /** GPUDriverInstallationConfig gpuDriverVersion */
                gpuDriverVersion?: (google.container.v1.GPUDriverInstallationConfig.GPUDriverVersion|keyof typeof google.container.v1.GPUDriverInstallationConfig.GPUDriverVersion|null);
            }

            /** Represents a GPUDriverInstallationConfig. */
            class GPUDriverInstallationConfig implements IGPUDriverInstallationConfig {

                /**
                 * Constructs a new GPUDriverInstallationConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IGPUDriverInstallationConfig);

                /** GPUDriverInstallationConfig gpuDriverVersion. */
                public gpuDriverVersion?: (google.container.v1.GPUDriverInstallationConfig.GPUDriverVersion|keyof typeof google.container.v1.GPUDriverInstallationConfig.GPUDriverVersion|null);

                /**
                 * Creates a new GPUDriverInstallationConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns GPUDriverInstallationConfig instance
                 */
                public static create(properties?: google.container.v1.IGPUDriverInstallationConfig): google.container.v1.GPUDriverInstallationConfig;

                /**
                 * Encodes the specified GPUDriverInstallationConfig message. Does not implicitly {@link google.container.v1.GPUDriverInstallationConfig.verify|verify} messages.
                 * @param message GPUDriverInstallationConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IGPUDriverInstallationConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified GPUDriverInstallationConfig message, length delimited. Does not implicitly {@link google.container.v1.GPUDriverInstallationConfig.verify|verify} messages.
                 * @param message GPUDriverInstallationConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1.IGPUDriverInstallationConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a GPUDriverInstallationConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns GPUDriverInstallationConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.GPUDriverInstallationConfig;

                /**
                 * Decodes a GPUDriverInstallationConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns GPUDriverInstallationConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.GPUDriverInstallationConfig;

                /**
                 * Verifies a GPUDriverInstallationConfig message.
                 * @param message Plain 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 GPUDriverInstallationConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns GPUDriverInstallationConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.GPUDriverInstallationConfig;

                /**
                 * Creates a plain object from a GPUDriverInstallationConfig message. Also converts values to other types if specified.
                 * @param message GPUDriverInstallationConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1.GPUDriverInstallationConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this GPUDriverInstallationConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for GPUDriverInstallationConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace GPUDriverInstallationConfig {

                /** GPUDriverVersion enum. */
                enum GPUDriverVersion {
                    GPU_DRIVER_VERSION_UNSPECIFIED = 0,
                    INSTALLATION_DISABLED = 1,
                    DEFAULT = 2,
                    LATEST = 3
                }
            }

            /** Properties of a WorkloadMetadataConfig. */
            interface IWorkloadMetadataConfig {

                /** WorkloadMetadataConfig mode */
                mode?: (google.container.v1.WorkloadMetadataConfig.Mode|keyof typeof google.container.v1.WorkloadMetadataConfig.Mode|null);
            }

            /** Represents a WorkloadMetadataConfig. */
            class WorkloadMetadataConfig implements IWorkloadMetadataConfig {

                /**
                 * Constructs a new WorkloadMetadataConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IWorkloadMetadataConfig);

                /** WorkloadMetadataConfig mode. */
                public mode: (google.container.v1.WorkloadMetadataConfig.Mode|keyof typeof google.container.v1.WorkloadMetadataConfig.Mode);

                /**
                 * Creates a new WorkloadMetadataConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns WorkloadMetadataConfig instance
                 */
                public static create(properties?: google.container.v1.IWorkloadMetadataConfig): google.container.v1.WorkloadMetadataConfig;

                /**
                 * Encodes the specified WorkloadMetadataConfig message. Does not implicitly {@link google.container.v1.WorkloadMetadataConfig.verify|verify} messages.
                 * @param message WorkloadMetadataConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IWorkloadMetadataConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified WorkloadMetadataConfig message, length delimited. Does not implicitly {@link google.container.v1.WorkloadMetadataConfig.verify|verify} messages.
                 * @param message WorkloadMetadataConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1.IWorkloadMetadataConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a WorkloadMetadataConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns WorkloadMetadataConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.WorkloadMetadataConfig;

                /**
                 * Decodes a WorkloadMetadataConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns WorkloadMetadataConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.WorkloadMetadataConfig;

                /**
                 * Verifies a WorkloadMetadataConfig message.
                 * @param message Plain 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 WorkloadMetadataConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns WorkloadMetadataConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.WorkloadMetadataConfig;

                /**
                 * Creates a plain object from a WorkloadMetadataConfig message. Also converts values to other types if specified.
                 * @param message WorkloadMetadataConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1.WorkloadMetadataConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this WorkloadMetadataConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for WorkloadMetadataConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace WorkloadMetadataConfig {

                /** Mode enum. */
                enum Mode {
                    MODE_UNSPECIFIED = 0,
                    GCE_METADATA = 1,
                    GKE_METADATA = 2
                }
            }

            /** Properties of a SetNetworkPolicyRequest. */
            interface ISetNetworkPolicyRequest {

                /** SetNetworkPolicyRequest projectId */
                projectId?: (string|null);

                /** SetNetworkPolicyRequest zone */
                zone?: (string|null);

                /** SetNetworkPolicyRequest clusterId */
                clusterId?: (string|null);

                /** SetNetworkPolicyRequest networkPolicy */
                networkPolicy?: (google.container.v1.INetworkPolicy|null);

                /** SetNetworkPolicyRequest name */
                name?: (string|null);
            }

            /** Represents a SetNetworkPolicyRequest. */
            class SetNetworkPolicyRequest implements ISetNetworkPolicyRequest {

                /**
                 * Constructs a new SetNetworkPolicyRequest.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.ISetNetworkPolicyRequest);

                /** SetNetworkPolicyRequest projectId. */
                public projectId: string;

                /** SetNetworkPolicyRequest zone. */
                public zone: string;

                /** SetNetworkPolicyRequest clusterId. */
                public clusterId: string;

                /** SetNetworkPolicyRequest networkPolicy. */
                public networkPolicy?: (google.container.v1.INetworkPolicy|null);

                /** SetNetworkPolicyRequest name. */
                public name: string;

                /**
                 * Creates a new SetNetworkPolicyRequest instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns SetNetworkPolicyRequest instance
                 */
                public static create(properties?: google.container.v1.ISetNetworkPolicyRequest): google.container.v1.SetNetworkPolicyRequest;

                /**
                 * Encodes the specified SetNetworkPolicyRequest message. Does not implicitly {@link google.container.v1.SetNetworkPolicyRequest.verify|verify} messages.
                 * @param message SetNetworkPolicyRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.ISetNetworkPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified SetNetworkPolicyRequest message, length delimited. Does not implicitly {@link google.container.v1.SetNetworkPolicyRequest.verify|verify} messages.
                 * @param message SetNetworkPolicyRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1.ISetNetworkPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a SetNetworkPolicyRequest message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns SetNetworkPolicyRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.SetNetworkPolicyRequest;

                /**
                 * Decodes a SetNetworkPolicyRequest message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns SetNetworkPolicyRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.SetNetworkPolicyRequest;

                /**
                 * Verifies a SetNetworkPolicyRequest message.
                 * @param message Plain 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 SetNetworkPolicyRequest message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns SetNetworkPolicyRequest
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.SetNetworkPolicyRequest;

                /**
                 * Creates a plain object from a SetNetworkPolicyRequest message. Also converts values to other types if specified.
                 * @param message SetNetworkPolicyRequest
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1.SetNetworkPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this SetNetworkPolicyRequest to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for SetNetworkPolicyRequest
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a SetMaintenancePolicyRequest. */
            interface ISetMaintenancePolicyRequest {

                /** SetMaintenancePolicyRequest projectId */
                projectId?: (string|null);

                /** SetMaintenancePolicyRequest zone */
                zone?: (string|null);

                /** SetMaintenancePolicyRequest clusterId */
                clusterId?: (string|null);

                /** SetMaintenancePolicyRequest maintenancePolicy */
                maintenancePolicy?: (google.container.v1.IMaintenancePolicy|null);

                /** SetMaintenancePolicyRequest name */
                name?: (string|null);
            }

            /** Represents a SetMaintenancePolicyRequest. */
            class SetMaintenancePolicyRequest implements ISetMaintenancePolicyRequest {

                /**
                 * Constructs a new SetMaintenancePolicyRequest.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.ISetMaintenancePolicyRequest);

                /** SetMaintenancePolicyRequest projectId. */
                public projectId: string;

                /** SetMaintenancePolicyRequest zone. */
                public zone: string;

                /** SetMaintenancePolicyRequest clusterId. */
                public clusterId: string;

                /** SetMaintenancePolicyRequest maintenancePolicy. */
                public maintenancePolicy?: (google.container.v1.IMaintenancePolicy|null);

                /** SetMaintenancePolicyRequest name. */
                public name: string;

                /**
                 * Creates a new SetMaintenancePolicyRequest instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns SetMaintenancePolicyRequest instance
                 */
                public static create(properties?: google.container.v1.ISetMaintenancePolicyRequest): google.container.v1.SetMaintenancePolicyRequest;

                /**
                 * Encodes the specified SetMaintenancePolicyRequest message. Does not implicitly {@link google.container.v1.SetMaintenancePolicyRequest.verify|verify} messages.
                 * @param message SetMaintenancePolicyRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.ISetMaintenancePolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified SetMaintenancePolicyRequest message, length delimited. Does not implicitly {@link google.container.v1.SetMaintenancePolicyRequest.verify|verify} messages.
                 * @param message SetMaintenancePolicyRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1.ISetMaintenancePolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a SetMaintenancePolicyRequest message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns SetMaintenancePolicyRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.SetMaintenancePolicyRequest;

                /**
                 * Decodes a SetMaintenancePolicyRequest message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns SetMaintenancePolicyRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.SetMaintenancePolicyRequest;

                /**
                 * Verifies a SetMaintenancePolicyRequest message.
                 * @param message Plain 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 SetMaintenancePolicyRequest message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns SetMaintenancePolicyRequest
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.SetMaintenancePolicyRequest;

                /**
                 * Creates a plain object from a SetMaintenancePolicyRequest message. Also converts values to other types if specified.
                 * @param message SetMaintenancePolicyRequest
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1.SetMaintenancePolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this SetMaintenancePolicyRequest to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for SetMaintenancePolicyRequest
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a StatusCondition. */
            interface IStatusCondition {

                /** StatusCondition code */
                code?: (google.container.v1.StatusCondition.Code|keyof typeof google.container.v1.StatusCondition.Code|null);

                /** StatusCondition message */
                message?: (string|null);

                /** StatusCondition canonicalCode */
                canonicalCode?: (google.rpc.Code|keyof typeof google.rpc.Code|null);
            }

            /** Represents a StatusCondition. */
            class StatusCondition implements IStatusCondition {

                /**
                 * Constructs a new StatusCondition.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IStatusCondition);

                /** StatusCondition code. */
                public code: (google.container.v1.StatusCondition.Code|keyof typeof google.container.v1.StatusCondition.Code);

                /** StatusCondition message. */
                public message: string;

                /** StatusCondition canonicalCode. */
                public canonicalCode: (google.rpc.Code|keyof typeof google.rpc.Code);

                /**
                 * Creates a new StatusCondition instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns StatusCondition instance
                 */
                public static create(properties?: google.container.v1.IStatusCondition): google.container.v1.StatusCondition;

                /**
                 * Encodes the specified StatusCondition message. Does not implicitly {@link google.container.v1.StatusCondition.verify|verify} messages.
                 * @param message StatusCondition message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IStatusCondition, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified StatusCondition message, length delimited. Does not implicitly {@link google.container.v1.StatusCondition.verify|verify} messages.
                 * @param message StatusCondition message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1.IStatusCondition, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a StatusCondition message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns StatusCondition
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.StatusCondition;

                /**
                 * Decodes a StatusCondition message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns StatusCondition
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.StatusCondition;

                /**
                 * Verifies a StatusCondition message.
                 * @param message Plain 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 StatusCondition message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns StatusCondition
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.StatusCondition;

                /**
                 * Creates a plain object from a StatusCondition message. Also converts values to other types if specified.
                 * @param message StatusCondition
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1.StatusCondition, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this StatusCondition to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for StatusCondition
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace StatusCondition {

                /** Code enum. */
                enum Code {
                    UNKNOWN = 0,
                    GCE_STOCKOUT = 1,
                    GKE_SERVICE_ACCOUNT_DELETED = 2,
                    GCE_QUOTA_EXCEEDED = 3,
                    SET_BY_OPERATOR = 4,
                    CLOUD_KMS_KEY_ERROR = 7,
                    CA_EXPIRING = 9,
                    NODE_SERVICE_ACCOUNT_MISSING_PERMISSIONS = 10,
                    CLOUD_KMS_KEY_DESTROYED = 11
                }
            }

            /** Properties of a NetworkConfig. */
            interface INetworkConfig {

                /** NetworkConfig network */
                network?: (string|null);

                /** NetworkConfig subnetwork */
                subnetwork?: (string|null);

                /** NetworkConfig enableIntraNodeVisibility */
                enableIntraNodeVisibility?: (boolean|null);

                /** NetworkConfig defaultSnatStatus */
                defaultSnatStatus?: (google.container.v1.IDefaultSnatStatus|null);

                /** NetworkConfig enableL4ilbSubsetting */
                enableL4ilbSubsetting?: (boolean|null);

                /** NetworkConfig datapathProvider */
                datapathProvider?: (google.container.v1.DatapathProvider|keyof typeof google.container.v1.DatapathProvider|null);

                /** NetworkConfig privateIpv6GoogleAccess */
                privateIpv6GoogleAccess?: (google.container.v1.PrivateIPv6GoogleAccess|keyof typeof google.container.v1.PrivateIPv6GoogleAccess|null);

                /** NetworkConfig dnsConfig */
                dnsConfig?: (google.container.v1.IDNSConfig|null);

                /** NetworkConfig serviceExternalIpsConfig */
                serviceExternalIpsConfig?: (google.container.v1.IServiceExternalIPsConfig|null);

                /** NetworkConfig gatewayApiConfig */
                gatewayApiConfig?: (google.container.v1.IGatewayAPIConfig|null);

                /** NetworkConfig enableMultiNetworking */
                enableMultiNetworking?: (boolean|null);

                /** NetworkConfig networkPerformanceConfig */
                networkPerformanceConfig?: (google.container.v1.NetworkConfig.IClusterNetworkPerformanceConfig|null);

                /** NetworkConfig enableFqdnNetworkPolicy */
                enableFqdnNetworkPolicy?: (boolean|null);

                /** NetworkConfig inTransitEncryptionConfig */
                inTransitEncryptionConfig?: (google.container.v1.InTransitEncryptionConfig|keyof typeof google.container.v1.InTransitEncryptionConfig|null);

                /** NetworkConfig enableCiliumClusterwideNetworkPolicy */
                enableCiliumClusterwideNetworkPolicy?: (boolean|null);

                /** NetworkConfig defaultEnablePrivateNodes */
                defaultEnablePrivateNodes?: (boolean|null);

                /** NetworkConfig disableL4LbFirewallReconciliation */
                disableL4LbFirewallReconciliation?: (boolean|null);
            }

            /** Represents a NetworkConfig. */
            class NetworkConfig implements INetworkConfig {

                /**
                 * Constructs a new NetworkConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.INetworkConfig);

                /** NetworkConfig network. */
                public network: string;

                /** NetworkConfig subnetwork. */
                public subnetwork: string;

                /** NetworkConfig enableIntraNodeVisibility. */
                public enableIntraNodeVisibility: boolean;

                /** NetworkConfig defaultSnatStatus. */
                public defaultSnatStatus?: (google.container.v1.IDefaultSnatStatus|null);

                /** NetworkConfig enableL4ilbSubsetting. */
                public enableL4ilbSubsetting: boolean;

                /** NetworkConfig datapathProvider. */
                public datapathProvider: (google.container.v1.DatapathProvider|keyof typeof google.container.v1.DatapathProvider);

                /** NetworkConfig privateIpv6GoogleAccess. */
                public privateIpv6GoogleAccess: (google.container.v1.PrivateIPv6GoogleAccess|keyof typeof google.container.v1.PrivateIPv6GoogleAccess);

                /** NetworkConfig dnsConfig. */
                public dnsConfig?: (google.container.v1.IDNSConfig|null);

                /** NetworkConfig serviceExternalIpsConfig. */
                public serviceExternalIpsConfig?: (google.container.v1.IServiceExternalIPsConfig|null);

                /** NetworkConfig gatewayApiConfig. */
                public gatewayApiConfig?: (google.container.v1.IGatewayAPIConfig|null);

                /** NetworkConfig enableMultiNetworking. */
                public enableMultiNetworking: boolean;

                /** NetworkConfig networkPerformanceConfig. */
                public networkPerformanceConfig?: (google.container.v1.NetworkConfig.IClusterNetworkPerformanceConfig|null);

                /** NetworkConfig enableFqdnNetworkPolicy. */
                public enableFqdnNetworkPolicy?: (boolean|null);

                /** NetworkConfig inTransitEncryptionConfig. */
                public inTransitEncryptionConfig?: (google.container.v1.InTransitEncryptionConfig|keyof typeof google.container.v1.InTransitEncryptionConfig|null);

                /** NetworkConfig enableCiliumClusterwideNetworkPolicy. */
                public enableCiliumClusterwideNetworkPolicy?: (boolean|null);

                /** NetworkConfig defaultEnablePrivateNodes. */
                public defaultEnablePrivateNodes?: (boolean|null);

                /** NetworkConfig disableL4LbFirewallReconciliation. */
                public disableL4LbFirewallReconciliation?: (boolean|null);

                /**
                 * Creates a new NetworkConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns NetworkConfig instance
                 */
                public static create(properties?: google.container.v1.INetworkConfig): google.container.v1.NetworkConfig;

                /**
                 * Encodes the specified NetworkConfig message. Does not implicitly {@link google.container.v1.NetworkConfig.verify|verify} messages.
                 * @param message NetworkConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.INetworkConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified NetworkConfig message, length delimited. Does not implicitly {@link google.container.v1.NetworkConfig.verify|verify} messages.
                 * @param message NetworkConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1.INetworkConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a NetworkConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns NetworkConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.NetworkConfig;

                /**
                 * Decodes a NetworkConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns NetworkConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.NetworkConfig;

                /**
                 * Verifies a NetworkConfig message.
                 * @param message Plain 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 NetworkConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns NetworkConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.NetworkConfig;

                /**
                 * Creates a plain object from a NetworkConfig message. Also converts values to other types if specified.
                 * @param message NetworkConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1.NetworkConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this NetworkConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for NetworkConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace NetworkConfig {

                /** Properties of a ClusterNetworkPerformanceConfig. */
                interface IClusterNetworkPerformanceConfig {

                    /** ClusterNetworkPerformanceConfig totalEgressBandwidthTier */
                    totalEgressBandwidthTier?: (google.container.v1.NetworkConfig.ClusterNetworkPerformanceConfig.Tier|keyof typeof google.container.v1.NetworkConfig.ClusterNetworkPerformanceConfig.Tier|null);
                }

                /** Represents a ClusterNetworkPerformanceConfig. */
                class ClusterNetworkPerformanceConfig implements IClusterNetworkPerformanceConfig {

                    /**
                     * Constructs a new ClusterNetworkPerformanceConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.container.v1.NetworkConfig.IClusterNetworkPerformanceConfig);

                    /** ClusterNetworkPerformanceConfig totalEgressBandwidthTier. */
                    public totalEgressBandwidthTier?: (google.container.v1.NetworkConfig.ClusterNetworkPerformanceConfig.Tier|keyof typeof google.container.v1.NetworkConfig.ClusterNetworkPerformanceConfig.Tier|null);

                    /**
                     * Creates a new ClusterNetworkPerformanceConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ClusterNetworkPerformanceConfig instance
                     */
                    public static create(properties?: google.container.v1.NetworkConfig.IClusterNetworkPerformanceConfig): google.container.v1.NetworkConfig.ClusterNetworkPerformanceConfig;

                    /**
                     * Encodes the specified ClusterNetworkPerformanceConfig message. Does not implicitly {@link google.container.v1.NetworkConfig.ClusterNetworkPerformanceConfig.verify|verify} messages.
                     * @param message ClusterNetworkPerformanceConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.container.v1.NetworkConfig.IClusterNetworkPerformanceConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ClusterNetworkPerformanceConfig message, length delimited. Does not implicitly {@link google.container.v1.NetworkConfig.ClusterNetworkPerformanceConfig.verify|verify} messages.
                     * @param message ClusterNetworkPerformanceConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.container.v1.NetworkConfig.IClusterNetworkPerformanceConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ClusterNetworkPerformanceConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ClusterNetworkPerformanceConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.NetworkConfig.ClusterNetworkPerformanceConfig;

                    /**
                     * Decodes a ClusterNetworkPerformanceConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ClusterNetworkPerformanceConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.NetworkConfig.ClusterNetworkPerformanceConfig;

                    /**
                     * Verifies a ClusterNetworkPerformanceConfig message.
                     * @param message Plain 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 ClusterNetworkPerformanceConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ClusterNetworkPerformanceConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.container.v1.NetworkConfig.ClusterNetworkPerformanceConfig;

                    /**
                     * Creates a plain object from a ClusterNetworkPerformanceConfig message. Also converts values to other types if specified.
                     * @param message ClusterNetworkPerformanceConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.container.v1.NetworkConfig.ClusterNetworkPerformanceConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ClusterNetworkPerformanceConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ClusterNetworkPerformanceConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ClusterNetworkPerformanceConfig {

                    /** Tier enum. */
                    enum Tier {
                        TIER_UNSPECIFIED = 0,
                        TIER_1 = 1
                    }
                }
            }

            /** Properties of a GatewayAPIConfig. */
            interface IGatewayAPIConfig {

                /** GatewayAPIConfig channel */
                channel?: (google.container.v1.GatewayAPIConfig.Channel|keyof typeof google.container.v1.GatewayAPIConfig.Channel|null);
            }

            /** Represents a GatewayAPIConfig. */
            class GatewayAPIConfig implements IGatewayAPIConfig {

                /**
                 * Constructs a new GatewayAPIConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IGatewayAPIConfig);

                /** GatewayAPIConfig channel. */
                public channel: (google.container.v1.GatewayAPIConfig.Channel|keyof typeof google.container.v1.GatewayAPIConfig.Channel);

                /**
                 * Creates a new GatewayAPIConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns GatewayAPIConfig instance
                 */
                public static create(properties?: google.container.v1.IGatewayAPIConfig): google.container.v1.GatewayAPIConfig;

                /**
                 * Encodes the specified GatewayAPIConfig message. Does not implicitly {@link google.container.v1.GatewayAPIConfig.verify|verify} messages.
                 * @param message GatewayAPIConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IGatewayAPIConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified GatewayAPIConfig message, length delimited. Does not implicitly {@link google.container.v1.GatewayAPIConfig.verify|verify} messages.
                 * @param message GatewayAPIConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1.IGatewayAPIConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a GatewayAPIConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns GatewayAPIConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.GatewayAPIConfig;

                /**
                 * Decodes a GatewayAPIConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns GatewayAPIConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.GatewayAPIConfig;

                /**
                 * Verifies a GatewayAPIConfig message.
                 * @param message Plain 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 GatewayAPIConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns GatewayAPIConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.GatewayAPIConfig;

                /**
                 * Creates a plain object from a GatewayAPIConfig message. Also converts values to other types if specified.
                 * @param message GatewayAPIConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1.GatewayAPIConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this GatewayAPIConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for GatewayAPIConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace GatewayAPIConfig {

                /** Channel enum. */
                enum Channel {
                    CHANNEL_UNSPECIFIED = 0,
                    CHANNEL_DISABLED = 1,
                    CHANNEL_EXPERIMENTAL = 3,
                    CHANNEL_STANDARD = 4
                }
            }

            /** Properties of a ServiceExternalIPsConfig. */
            interface IServiceExternalIPsConfig {

                /** ServiceExternalIPsConfig enabled */
                enabled?: (boolean|null);
            }

            /** Represents a ServiceExternalIPsConfig. */
            class ServiceExternalIPsConfig implements IServiceExternalIPsConfig {

                /**
                 * Constructs a new ServiceExternalIPsConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IServiceExternalIPsConfig);

                /** ServiceExternalIPsConfig enabled. */
                public enabled: boolean;

                /**
                 * Creates a new ServiceExternalIPsConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ServiceExternalIPsConfig instance
                 */
                public static create(properties?: google.container.v1.IServiceExternalIPsConfig): google.container.v1.ServiceExternalIPsConfig;

                /**
                 * Encodes the specified ServiceExternalIPsConfig message. Does not implicitly {@link google.container.v1.ServiceExternalIPsConfig.verify|verify} messages.
                 * @param message ServiceExternalIPsConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IServiceExternalIPsConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified ServiceExternalIPsConfig message, length delimited. Does not implicitly {@link google.container.v1.ServiceExternalIPsConfig.verify|verify} messages.
                 * @param message ServiceExternalIPsConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1.IServiceExternalIPsConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a ServiceExternalIPsConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ServiceExternalIPsConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.ServiceExternalIPsConfig;

                /**
                 * Decodes a ServiceExternalIPsConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ServiceExternalIPsConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.ServiceExternalIPsConfig;

                /**
                 * Verifies a ServiceExternalIPsConfig message.
                 * @param message Plain 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 ServiceExternalIPsConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ServiceExternalIPsConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.ServiceExternalIPsConfig;

                /**
                 * Creates a plain object from a ServiceExternalIPsConfig message. Also converts values to other types if specified.
                 * @param message ServiceExternalIPsConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1.ServiceExternalIPsConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ServiceExternalIPsConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for ServiceExternalIPsConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a GetOpenIDConfigRequest. */
            interface IGetOpenIDConfigRequest {

                /** GetOpenIDConfigRequest parent */
                parent?: (string|null);
            }

            /** Represents a GetOpenIDConfigRequest. */
            class GetOpenIDConfigRequest implements IGetOpenIDConfigRequest {

                /**
                 * Constructs a new GetOpenIDConfigRequest.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IGetOpenIDConfigRequest);

                /** GetOpenIDConfigRequest parent. */
                public parent: string;

                /**
                 * Creates a new GetOpenIDConfigRequest instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns GetOpenIDConfigRequest instance
                 */
                public static create(properties?: google.container.v1.IGetOpenIDConfigRequest): google.container.v1.GetOpenIDConfigRequest;

                /**
                 * Encodes the specified GetOpenIDConfigRequest message. Does not implicitly {@link google.container.v1.GetOpenIDConfigRequest.verify|verify} messages.
                 * @param message GetOpenIDConfigRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IGetOpenIDConfigRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified GetOpenIDConfigRequest message, length delimited. Does not implicitly {@link google.container.v1.GetOpenIDConfigRequest.verify|verify} messages.
                 * @param message GetOpenIDConfigRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1.IGetOpenIDConfigRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a GetOpenIDConfigRequest message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns GetOpenIDConfigRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.GetOpenIDConfigRequest;

                /**
                 * Decodes a GetOpenIDConfigRequest message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns GetOpenIDConfigRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.GetOpenIDConfigRequest;

                /**
                 * Verifies a GetOpenIDConfigRequest message.
                 * @param message Plain 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 GetOpenIDConfigRequest message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns GetOpenIDConfigRequest
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.GetOpenIDConfigRequest;

                /**
                 * Creates a plain object from a GetOpenIDConfigRequest message. Also converts values to other types if specified.
                 * @param message GetOpenIDConfigRequest
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1.GetOpenIDConfigRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this GetOpenIDConfigRequest to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for GetOpenIDConfigRequest
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a GetOpenIDConfigResponse. */
            interface IGetOpenIDConfigResponse {

                /** GetOpenIDConfigResponse issuer */
                issuer?: (string|null);

                /** GetOpenIDConfigResponse jwksUri */
                jwksUri?: (string|null);

                /** GetOpenIDConfigResponse responseTypesSupported */
                responseTypesSupported?: (string[]|null);

                /** GetOpenIDConfigResponse subjectTypesSupported */
                subjectTypesSupported?: (string[]|null);

                /** GetOpenIDConfigResponse idTokenSigningAlgValuesSupported */
                idTokenSigningAlgValuesSupported?: (string[]|null);

                /** GetOpenIDConfigResponse claimsSupported */
                claimsSupported?: (string[]|null);

                /** GetOpenIDConfigResponse grantTypes */
                grantTypes?: (string[]|null);
            }

            /** Represents a GetOpenIDConfigResponse. */
            class GetOpenIDConfigResponse implements IGetOpenIDConfigResponse {

                /**
                 * Constructs a new GetOpenIDConfigResponse.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IGetOpenIDConfigResponse);

                /** GetOpenIDConfigResponse issuer. */
                public issuer: string;

                /** GetOpenIDConfigResponse jwksUri. */
                public jwksUri: string;

                /** GetOpenIDConfigResponse responseTypesSupported. */
                public responseTypesSupported: string[];

                /** GetOpenIDConfigResponse subjectTypesSupported. */
                public subjectTypesSupported: string[];

                /** GetOpenIDConfigResponse idTokenSigningAlgValuesSupported. */
                public idTokenSigningAlgValuesSupported: string[];

                /** GetOpenIDConfigResponse claimsSupported. */
                public claimsSupported: string[];

                /** GetOpenIDConfigResponse grantTypes. */
                public grantTypes: string[];

                /**
                 * Creates a new GetOpenIDConfigResponse instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns GetOpenIDConfigResponse instance
                 */
                public static create(properties?: google.container.v1.IGetOpenIDConfigResponse): google.container.v1.GetOpenIDConfigResponse;

                /**
                 * Encodes the specified GetOpenIDConfigResponse message. Does not implicitly {@link google.container.v1.GetOpenIDConfigResponse.verify|verify} messages.
                 * @param message GetOpenIDConfigResponse message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IGetOpenIDConfigResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified GetOpenIDConfigResponse message, length delimited. Does not implicitly {@link google.container.v1.GetOpenIDConfigResponse.verify|verify} messages.
                 * @param message GetOpenIDConfigResponse message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1.IGetOpenIDConfigResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a GetOpenIDConfigResponse message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns GetOpenIDConfigResponse
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.GetOpenIDConfigResponse;

                /**
                 * Decodes a GetOpenIDConfigResponse message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns GetOpenIDConfigResponse
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.GetOpenIDConfigResponse;

                /**
                 * Verifies a GetOpenIDConfigResponse message.
                 * @param message Plain 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 GetOpenIDConfigResponse message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns GetOpenIDConfigResponse
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.GetOpenIDConfigResponse;

                /**
                 * Creates a plain object from a GetOpenIDConfigResponse message. Also converts values to other types if specified.
                 * @param message GetOpenIDConfigResponse
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1.GetOpenIDConfigResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this GetOpenIDConfigResponse to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for GetOpenIDConfigResponse
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a GetJSONWebKeysRequest. */
            interface IGetJSONWebKeysRequest {

                /** GetJSONWebKeysRequest parent */
                parent?: (string|null);
            }

            /** Represents a GetJSONWebKeysRequest. */
            class GetJSONWebKeysRequest implements IGetJSONWebKeysRequest {

                /**
                 * Constructs a new GetJSONWebKeysRequest.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IGetJSONWebKeysRequest);

                /** GetJSONWebKeysRequest parent. */
                public parent: string;

                /**
                 * Creates a new GetJSONWebKeysRequest instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns GetJSONWebKeysRequest instance
                 */
                public static create(properties?: google.container.v1.IGetJSONWebKeysRequest): google.container.v1.GetJSONWebKeysRequest;

                /**
                 * Encodes the specified GetJSONWebKeysRequest message. Does not implicitly {@link google.container.v1.GetJSONWebKeysRequest.verify|verify} messages.
                 * @param message GetJSONWebKeysRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IGetJSONWebKeysRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified GetJSONWebKeysRequest message, length delimited. Does not implicitly {@link google.container.v1.GetJSONWebKeysRequest.verify|verify} messages.
                 * @param message GetJSONWebKeysRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1.IGetJSONWebKeysRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a GetJSONWebKeysRequest message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns GetJSONWebKeysRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.GetJSONWebKeysRequest;

                /**
                 * Decodes a GetJSONWebKeysRequest message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns GetJSONWebKeysRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.GetJSONWebKeysRequest;

                /**
                 * Verifies a GetJSONWebKeysRequest message.
                 * @param message Plain 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 GetJSONWebKeysRequest message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns GetJSONWebKeysRequest
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.GetJSONWebKeysRequest;

                /**
                 * Creates a plain object from a GetJSONWebKeysRequest message. Also converts values to other types if specified.
                 * @param message GetJSONWebKeysRequest
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1.GetJSONWebKeysRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this GetJSONWebKeysRequest to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for GetJSONWebKeysRequest
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a Jwk. */
            interface IJwk {

                /** Jwk kty */
                kty?: (string|null);

                /** Jwk alg */
                alg?: (string|null);

                /** Jwk use */
                use?: (string|null);

                /** Jwk kid */
                kid?: (string|null);

                /** Jwk n */
                n?: (string|null);

                /** Jwk e */
                e?: (string|null);

                /** Jwk x */
                x?: (string|null);

                /** Jwk y */
                y?: (string|null);

                /** Jwk crv */
                crv?: (string|null);
            }

            /** Represents a Jwk. */
            class Jwk implements IJwk {

                /**
                 * Constructs a new Jwk.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IJwk);

                /** Jwk kty. */
                public kty: string;

                /** Jwk alg. */
                public alg: string;

                /** Jwk use. */
                public use: string;

                /** Jwk kid. */
                public kid: string;

                /** Jwk n. */
                public n: string;

                /** Jwk e. */
                public e: string;

                /** Jwk x. */
                public x: string;

                /** Jwk y. */
                public y: string;

                /** Jwk crv. */
                public crv: string;

                /**
                 * Creates a new Jwk instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns Jwk instance
                 */
                public static create(properties?: google.container.v1.IJwk): google.container.v1.Jwk;

                /**
                 * Encodes the specified Jwk message. Does not implicitly {@link google.container.v1.Jwk.verify|verify} messages.
                 * @param message Jwk message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IJwk, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified Jwk message, length delimited. Does not implicitly {@link google.container.v1.Jwk.verify|verify} messages.
                 * @param message Jwk message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1.IJwk, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a Jwk message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns Jwk
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.Jwk;

                /**
                 * Decodes a Jwk message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns Jwk
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.Jwk;

                /**
                 * Verifies a Jwk message.
                 * @param message Plain 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 Jwk message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns Jwk
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.Jwk;

                /**
                 * Creates a plain object from a Jwk message. Also converts values to other types if specified.
                 * @param message Jwk
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1.Jwk, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this Jwk to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for Jwk
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a GetJSONWebKeysResponse. */
            interface IGetJSONWebKeysResponse {

                /** GetJSONWebKeysResponse keys */
                keys?: (google.container.v1.IJwk[]|null);
            }

            /** Represents a GetJSONWebKeysResponse. */
            class GetJSONWebKeysResponse implements IGetJSONWebKeysResponse {

                /**
                 * Constructs a new GetJSONWebKeysResponse.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IGetJSONWebKeysResponse);

                /** GetJSONWebKeysResponse keys. */
                public keys: google.container.v1.IJwk[];

                /**
                 * Creates a new GetJSONWebKeysResponse instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns GetJSONWebKeysResponse instance
                 */
                public static create(properties?: google.container.v1.IGetJSONWebKeysResponse): google.container.v1.GetJSONWebKeysResponse;

                /**
                 * Encodes the specified GetJSONWebKeysResponse message. Does not implicitly {@link google.container.v1.GetJSONWebKeysResponse.verify|verify} messages.
                 * @param message GetJSONWebKeysResponse message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IGetJSONWebKeysResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified GetJSONWebKeysResponse message, length delimited. Does not implicitly {@link google.container.v1.GetJSONWebKeysResponse.verify|verify} messages.
                 * @param message GetJSONWebKeysResponse message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1.IGetJSONWebKeysResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a GetJSONWebKeysResponse message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns GetJSONWebKeysResponse
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.GetJSONWebKeysResponse;

                /**
                 * Decodes a GetJSONWebKeysResponse message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns GetJSONWebKeysResponse
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.GetJSONWebKeysResponse;

                /**
                 * Verifies a GetJSONWebKeysResponse message.
                 * @param message Plain 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 GetJSONWebKeysResponse message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns GetJSONWebKeysResponse
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.GetJSONWebKeysResponse;

                /**
                 * Creates a plain object from a GetJSONWebKeysResponse message. Also converts values to other types if specified.
                 * @param message GetJSONWebKeysResponse
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1.GetJSONWebKeysResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this GetJSONWebKeysResponse to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for GetJSONWebKeysResponse
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a CheckAutopilotCompatibilityRequest. */
            interface ICheckAutopilotCompatibilityRequest {

                /** CheckAutopilotCompatibilityRequest name */
                name?: (string|null);
            }

            /** Represents a CheckAutopilotCompatibilityRequest. */
            class CheckAutopilotCompatibilityRequest implements ICheckAutopilotCompatibilityRequest {

                /**
                 * Constructs a new CheckAutopilotCompatibilityRequest.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.ICheckAutopilotCompatibilityRequest);

                /** CheckAutopilotCompatibilityRequest name. */
                public name: string;

                /**
                 * Creates a new CheckAutopilotCompatibilityRequest instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns CheckAutopilotCompatibilityRequest instance
                 */
                public static create(properties?: google.container.v1.ICheckAutopilotCompatibilityRequest): google.container.v1.CheckAutopilotCompatibilityRequest;

                /**
                 * Encodes the specified CheckAutopilotCompatibilityRequest message. Does not implicitly {@link google.container.v1.CheckAutopilotCompatibilityRequest.verify|verify} messages.
                 * @param message CheckAutopilotCompatibilityRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.ICheckAutopilotCompatibilityRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified CheckAutopilotCompatibilityRequest message, length delimited. Does not implicitly {@link google.container.v1.CheckAutopilotCompatibilityRequest.verify|verify} messages.
                 * @param message CheckAutopilotCompatibilityRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1.ICheckAutopilotCompatibilityRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a CheckAutopilotCompatibilityRequest message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns CheckAutopilotCompatibilityRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.CheckAutopilotCompatibilityRequest;

                /**
                 * Decodes a CheckAutopilotCompatibilityRequest message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns CheckAutopilotCompatibilityRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.CheckAutopilotCompatibilityRequest;

                /**
                 * Verifies a CheckAutopilotCompatibilityRequest message.
                 * @param message Plain 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 CheckAutopilotCompatibilityRequest message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns CheckAutopilotCompatibilityRequest
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.CheckAutopilotCompatibilityRequest;

                /**
                 * Creates a plain object from a CheckAutopilotCompatibilityRequest message. Also converts values to other types if specified.
                 * @param message CheckAutopilotCompatibilityRequest
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1.CheckAutopilotCompatibilityRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this CheckAutopilotCompatibilityRequest to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for CheckAutopilotCompatibilityRequest
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of an AutopilotCompatibilityIssue. */
            interface IAutopilotCompatibilityIssue {

                /** AutopilotCompatibilityIssue lastObservation */
                lastObservation?: (google.protobuf.ITimestamp|null);

                /** AutopilotCompatibilityIssue constraintType */
                constraintType?: (string|null);

                /** AutopilotCompatibilityIssue incompatibilityType */
                incompatibilityType?: (google.container.v1.AutopilotCompatibilityIssue.IssueType|keyof typeof google.container.v1.AutopilotCompatibilityIssue.IssueType|null);

                /** AutopilotCompatibilityIssue subjects */
                subjects?: (string[]|null);

                /** AutopilotCompatibilityIssue documentationUrl */
                documentationUrl?: (string|null);

                /** AutopilotCompatibilityIssue description */
                description?: (string|null);
            }

            /** Represents an AutopilotCompatibilityIssue. */
            class AutopilotCompatibilityIssue implements IAutopilotCompatibilityIssue {

                /**
                 * Constructs a new AutopilotCompatibilityIssue.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IAutopilotCompatibilityIssue);

                /** AutopilotCompatibilityIssue lastObservation. */
                public lastObservation?: (google.protobuf.ITimestamp|null);

                /** AutopilotCompatibilityIssue constraintType. */
                public constraintType: string;

                /** AutopilotCompatibilityIssue incompatibilityType. */
                public incompatibilityType: (google.container.v1.AutopilotCompatibilityIssue.IssueType|keyof typeof google.container.v1.AutopilotCompatibilityIssue.IssueType);

                /** AutopilotCompatibilityIssue subjects. */
                public subjects: string[];

                /** AutopilotCompatibilityIssue documentationUrl. */
                public documentationUrl: string;

                /** AutopilotCompatibilityIssue description. */
                public description: string;

                /**
                 * Creates a new AutopilotCompatibilityIssue instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns AutopilotCompatibilityIssue instance
                 */
                public static create(properties?: google.container.v1.IAutopilotCompatibilityIssue): google.container.v1.AutopilotCompatibilityIssue;

                /**
                 * Encodes the specified AutopilotCompatibilityIssue message. Does not implicitly {@link google.container.v1.AutopilotCompatibilityIssue.verify|verify} messages.
                 * @param message AutopilotCompatibilityIssue message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IAutopilotCompatibilityIssue, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified AutopilotCompatibilityIssue message, length delimited. Does not implicitly {@link google.container.v1.AutopilotCompatibilityIssue.verify|verify} messages.
                 * @param message AutopilotCompatibilityIssue message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1.IAutopilotCompatibilityIssue, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes an AutopilotCompatibilityIssue message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns AutopilotCompatibilityIssue
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.AutopilotCompatibilityIssue;

                /**
                 * Decodes an AutopilotCompatibilityIssue message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns AutopilotCompatibilityIssue
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.AutopilotCompatibilityIssue;

                /**
                 * Verifies an AutopilotCompatibilityIssue message.
                 * @param message Plain 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 AutopilotCompatibilityIssue message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns AutopilotCompatibilityIssue
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.AutopilotCompatibilityIssue;

                /**
                 * Creates a plain object from an AutopilotCompatibilityIssue message. Also converts values to other types if specified.
                 * @param message AutopilotCompatibilityIssue
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1.AutopilotCompatibilityIssue, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this AutopilotCompatibilityIssue to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for AutopilotCompatibilityIssue
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace AutopilotCompatibilityIssue {

                /** IssueType enum. */
                enum IssueType {
                    UNSPECIFIED = 0,
                    INCOMPATIBILITY = 1,
                    ADDITIONAL_CONFIG_REQUIRED = 2,
                    PASSED_WITH_OPTIONAL_CONFIG = 3
                }
            }

            /** Properties of a CheckAutopilotCompatibilityResponse. */
            interface ICheckAutopilotCompatibilityResponse {

                /** CheckAutopilotCompatibilityResponse issues */
                issues?: (google.container.v1.IAutopilotCompatibilityIssue[]|null);

                /** CheckAutopilotCompatibilityResponse summary */
                summary?: (string|null);
            }

            /** Represents a CheckAutopilotCompatibilityResponse. */
            class CheckAutopilotCompatibilityResponse implements ICheckAutopilotCompatibilityResponse {

                /**
                 * Constructs a new CheckAutopilotCompatibilityResponse.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.ICheckAutopilotCompatibilityResponse);

                /** CheckAutopilotCompatibilityResponse issues. */
                public issues: google.container.v1.IAutopilotCompatibilityIssue[];

                /** CheckAutopilotCompatibilityResponse summary. */
                public summary: string;

                /**
                 * Creates a new CheckAutopilotCompatibilityResponse instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns CheckAutopilotCompatibilityResponse instance
                 */
                public static create(properties?: google.container.v1.ICheckAutopilotCompatibilityResponse): google.container.v1.CheckAutopilotCompatibilityResponse;

                /**
                 * Encodes the specified CheckAutopilotCompatibilityResponse message. Does not implicitly {@link google.container.v1.CheckAutopilotCompatibilityResponse.verify|verify} messages.
                 * @param message CheckAutopilotCompatibilityResponse message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.ICheckAutopilotCompatibilityResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified CheckAutopilotCompatibilityResponse message, length delimited. Does not implicitly {@link google.container.v1.CheckAutopilotCompatibilityResponse.verify|verify} messages.
                 * @param message CheckAutopilotCompatibilityResponse message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1.ICheckAutopilotCompatibilityResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a CheckAutopilotCompatibilityResponse message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns CheckAutopilotCompatibilityResponse
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.CheckAutopilotCompatibilityResponse;

                /**
                 * Decodes a CheckAutopilotCompatibilityResponse message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns CheckAutopilotCompatibilityResponse
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.CheckAutopilotCompatibilityResponse;

                /**
                 * Verifies a CheckAutopilotCompatibilityResponse message.
                 * @param message Plain 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 CheckAutopilotCompatibilityResponse message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns CheckAutopilotCompatibilityResponse
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.CheckAutopilotCompatibilityResponse;

                /**
                 * Creates a plain object from a CheckAutopilotCompatibilityResponse message. Also converts values to other types if specified.
                 * @param message CheckAutopilotCompatibilityResponse
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1.CheckAutopilotCompatibilityResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this CheckAutopilotCompatibilityResponse to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for CheckAutopilotCompatibilityResponse
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a ReleaseChannel. */
            interface IReleaseChannel {

                /** ReleaseChannel channel */
                channel?: (google.container.v1.ReleaseChannel.Channel|keyof typeof google.container.v1.ReleaseChannel.Channel|null);
            }

            /** Represents a ReleaseChannel. */
            class ReleaseChannel implements IReleaseChannel {

                /**
                 * Constructs a new ReleaseChannel.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IReleaseChannel);

                /** ReleaseChannel channel. */
                public channel: (google.container.v1.ReleaseChannel.Channel|keyof typeof google.container.v1.ReleaseChannel.Channel);

                /**
                 * Creates a new ReleaseChannel instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ReleaseChannel instance
                 */
                public static create(properties?: google.container.v1.IReleaseChannel): google.container.v1.ReleaseChannel;

                /**
                 * Encodes the specified ReleaseChannel message. Does not implicitly {@link google.container.v1.ReleaseChannel.verify|verify} messages.
                 * @param message ReleaseChannel message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IReleaseChannel, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified ReleaseChannel message, length delimited. Does not implicitly {@link google.container.v1.ReleaseChannel.verify|verify} messages.
                 * @param message ReleaseChannel message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1.IReleaseChannel, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a ReleaseChannel message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ReleaseChannel
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.ReleaseChannel;

                /**
                 * Decodes a ReleaseChannel message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ReleaseChannel
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.ReleaseChannel;

                /**
                 * Verifies a ReleaseChannel message.
                 * @param message Plain 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 ReleaseChannel message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ReleaseChannel
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.ReleaseChannel;

                /**
                 * Creates a plain object from a ReleaseChannel message. Also converts values to other types if specified.
                 * @param message ReleaseChannel
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1.ReleaseChannel, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ReleaseChannel to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for ReleaseChannel
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace ReleaseChannel {

                /** Channel enum. */
                enum Channel {
                    UNSPECIFIED = 0,
                    RAPID = 1,
                    REGULAR = 2,
                    STABLE = 3,
                    EXTENDED = 4
                }
            }

            /** Properties of a CostManagementConfig. */
            interface ICostManagementConfig {

                /** CostManagementConfig enabled */
                enabled?: (boolean|null);
            }

            /** Represents a CostManagementConfig. */
            class CostManagementConfig implements ICostManagementConfig {

                /**
                 * Constructs a new CostManagementConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.ICostManagementConfig);

                /** CostManagementConfig enabled. */
                public enabled: boolean;

                /**
                 * Creates a new CostManagementConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns CostManagementConfig instance
                 */
                public static create(properties?: google.container.v1.ICostManagementConfig): google.container.v1.CostManagementConfig;

                /**
                 * Encodes the specified CostManagementConfig message. Does not implicitly {@link google.container.v1.CostManagementConfig.verify|verify} messages.
                 * @param message CostManagementConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.ICostManagementConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified CostManagementConfig message, length delimited. Does not implicitly {@link google.container.v1.CostManagementConfig.verify|verify} messages.
                 * @param message CostManagementConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1.ICostManagementConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a CostManagementConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns CostManagementConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.CostManagementConfig;

                /**
                 * Decodes a CostManagementConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns CostManagementConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.CostManagementConfig;

                /**
                 * Verifies a CostManagementConfig message.
                 * @param message Plain 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 CostManagementConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns CostManagementConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.CostManagementConfig;

                /**
                 * Creates a plain object from a CostManagementConfig message. Also converts values to other types if specified.
                 * @param message CostManagementConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1.CostManagementConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this CostManagementConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for CostManagementConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of an IntraNodeVisibilityConfig. */
            interface IIntraNodeVisibilityConfig {

                /** IntraNodeVisibilityConfig enabled */
                enabled?: (boolean|null);
            }

            /** Represents an IntraNodeVisibilityConfig. */
            class IntraNodeVisibilityConfig implements IIntraNodeVisibilityConfig {

                /**
                 * Constructs a new IntraNodeVisibilityConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IIntraNodeVisibilityConfig);

                /** IntraNodeVisibilityConfig enabled. */
                public enabled: boolean;

                /**
                 * Creates a new IntraNodeVisibilityConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns IntraNodeVisibilityConfig instance
                 */
                public static create(properties?: google.container.v1.IIntraNodeVisibilityConfig): google.container.v1.IntraNodeVisibilityConfig;

                /**
                 * Encodes the specified IntraNodeVisibilityConfig message. Does not implicitly {@link google.container.v1.IntraNodeVisibilityConfig.verify|verify} messages.
                 * @param message IntraNodeVisibilityConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IIntraNodeVisibilityConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified IntraNodeVisibilityConfig message, length delimited. Does not implicitly {@link google.container.v1.IntraNodeVisibilityConfig.verify|verify} messages.
                 * @param message IntraNodeVisibilityConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1.IIntraNodeVisibilityConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes an IntraNodeVisibilityConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns IntraNodeVisibilityConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.IntraNodeVisibilityConfig;

                /**
                 * Decodes an IntraNodeVisibilityConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns IntraNodeVisibilityConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.IntraNodeVisibilityConfig;

                /**
                 * Verifies an IntraNodeVisibilityConfig message.
                 * @param message Plain 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 IntraNodeVisibilityConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns IntraNodeVisibilityConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.IntraNodeVisibilityConfig;

                /**
                 * Creates a plain object from an IntraNodeVisibilityConfig message. Also converts values to other types if specified.
                 * @param message IntraNodeVisibilityConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1.IntraNodeVisibilityConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this IntraNodeVisibilityConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for IntraNodeVisibilityConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a ILBSubsettingConfig. */
            interface IILBSubsettingConfig {

                /** ILBSubsettingConfig enabled */
                enabled?: (boolean|null);
            }

            /** Represents a ILBSubsettingConfig. */
            class ILBSubsettingConfig implements IILBSubsettingConfig {

                /**
                 * Constructs a new ILBSubsettingConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IILBSubsettingConfig);

                /** ILBSubsettingConfig enabled. */
                public enabled: boolean;

                /**
                 * Creates a new ILBSubsettingConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ILBSubsettingConfig instance
                 */
                public static create(properties?: google.container.v1.IILBSubsettingConfig): google.container.v1.ILBSubsettingConfig;

                /**
                 * Encodes the specified ILBSubsettingConfig message. Does not implicitly {@link google.container.v1.ILBSubsettingConfig.verify|verify} messages.
                 * @param message ILBSubsettingConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IILBSubsettingConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified ILBSubsettingConfig message, length delimited. Does not implicitly {@link google.container.v1.ILBSubsettingConfig.verify|verify} messages.
                 * @param message ILBSubsettingConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1.IILBSubsettingConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a ILBSubsettingConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ILBSubsettingConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.ILBSubsettingConfig;

                /**
                 * Decodes a ILBSubsettingConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ILBSubsettingConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.ILBSubsettingConfig;

                /**
                 * Verifies a ILBSubsettingConfig message.
                 * @param message Plain 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 ILBSubsettingConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ILBSubsettingConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.ILBSubsettingConfig;

                /**
                 * Creates a plain object from a ILBSubsettingConfig message. Also converts values to other types if specified.
                 * @param message ILBSubsettingConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1.ILBSubsettingConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ILBSubsettingConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for ILBSubsettingConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a DNSConfig. */
            interface IDNSConfig {

                /** DNSConfig clusterDns */
                clusterDns?: (google.container.v1.DNSConfig.Provider|keyof typeof google.container.v1.DNSConfig.Provider|null);

                /** DNSConfig clusterDnsScope */
                clusterDnsScope?: (google.container.v1.DNSConfig.DNSScope|keyof typeof google.container.v1.DNSConfig.DNSScope|null);

                /** DNSConfig clusterDnsDomain */
                clusterDnsDomain?: (string|null);

                /** DNSConfig additiveVpcScopeDnsDomain */
                additiveVpcScopeDnsDomain?: (string|null);
            }

            /** Represents a DNSConfig. */
            class DNSConfig implements IDNSConfig {

                /**
                 * Constructs a new DNSConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IDNSConfig);

                /** DNSConfig clusterDns. */
                public clusterDns: (google.container.v1.DNSConfig.Provider|keyof typeof google.container.v1.DNSConfig.Provider);

                /** DNSConfig clusterDnsScope. */
                public clusterDnsScope: (google.container.v1.DNSConfig.DNSScope|keyof typeof google.container.v1.DNSConfig.DNSScope);

                /** DNSConfig clusterDnsDomain. */
                public clusterDnsDomain: string;

                /** DNSConfig additiveVpcScopeDnsDomain. */
                public additiveVpcScopeDnsDomain: string;

                /**
                 * Creates a new DNSConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns DNSConfig instance
                 */
                public static create(properties?: google.container.v1.IDNSConfig): google.container.v1.DNSConfig;

                /**
                 * Encodes the specified DNSConfig message. Does not implicitly {@link google.container.v1.DNSConfig.verify|verify} messages.
                 * @param message DNSConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IDNSConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified DNSConfig message, length delimited. Does not implicitly {@link google.container.v1.DNSConfig.verify|verify} messages.
                 * @param message DNSConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1.IDNSConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a DNSConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns DNSConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.DNSConfig;

                /**
                 * Decodes a DNSConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns DNSConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.DNSConfig;

                /**
                 * Verifies a DNSConfig message.
                 * @param message Plain 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 DNSConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns DNSConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.DNSConfig;

                /**
                 * Creates a plain object from a DNSConfig message. Also converts values to other types if specified.
                 * @param message DNSConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1.DNSConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this DNSConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for DNSConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace DNSConfig {

                /** Provider enum. */
                enum Provider {
                    PROVIDER_UNSPECIFIED = 0,
                    PLATFORM_DEFAULT = 1,
                    CLOUD_DNS = 2,
                    KUBE_DNS = 3
                }

                /** DNSScope enum. */
                enum DNSScope {
                    DNS_SCOPE_UNSPECIFIED = 0,
                    CLUSTER_SCOPE = 1,
                    VPC_SCOPE = 2
                }
            }

            /** Properties of a MaxPodsConstraint. */
            interface IMaxPodsConstraint {

                /** MaxPodsConstraint maxPodsPerNode */
                maxPodsPerNode?: (number|Long|string|null);
            }

            /** Represents a MaxPodsConstraint. */
            class MaxPodsConstraint implements IMaxPodsConstraint {

                /**
                 * Constructs a new MaxPodsConstraint.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IMaxPodsConstraint);

                /** MaxPodsConstraint maxPodsPerNode. */
                public maxPodsPerNode: (number|Long|string);

                /**
                 * Creates a new MaxPodsConstraint instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns MaxPodsConstraint instance
                 */
                public static create(properties?: google.container.v1.IMaxPodsConstraint): google.container.v1.MaxPodsConstraint;

                /**
                 * Encodes the specified MaxPodsConstraint message. Does not implicitly {@link google.container.v1.MaxPodsConstraint.verify|verify} messages.
                 * @param message MaxPodsConstraint message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IMaxPodsConstraint, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified MaxPodsConstraint message, length delimited. Does not implicitly {@link google.container.v1.MaxPodsConstraint.verify|verify} messages.
                 * @param message MaxPodsConstraint message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1.IMaxPodsConstraint, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a MaxPodsConstraint message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns MaxPodsConstraint
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.MaxPodsConstraint;

                /**
                 * Decodes a MaxPodsConstraint message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns MaxPodsConstraint
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.MaxPodsConstraint;

                /**
                 * Verifies a MaxPodsConstraint message.
                 * @param message Plain 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 MaxPodsConstraint message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns MaxPodsConstraint
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.MaxPodsConstraint;

                /**
                 * Creates a plain object from a MaxPodsConstraint message. Also converts values to other types if specified.
                 * @param message MaxPodsConstraint
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1.MaxPodsConstraint, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this MaxPodsConstraint to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for MaxPodsConstraint
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a WorkloadIdentityConfig. */
            interface IWorkloadIdentityConfig {

                /** WorkloadIdentityConfig workloadPool */
                workloadPool?: (string|null);
            }

            /** Represents a WorkloadIdentityConfig. */
            class WorkloadIdentityConfig implements IWorkloadIdentityConfig {

                /**
                 * Constructs a new WorkloadIdentityConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IWorkloadIdentityConfig);

                /** WorkloadIdentityConfig workloadPool. */
                public workloadPool: string;

                /**
                 * Creates a new WorkloadIdentityConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns WorkloadIdentityConfig instance
                 */
                public static create(properties?: google.container.v1.IWorkloadIdentityConfig): google.container.v1.WorkloadIdentityConfig;

                /**
                 * Encodes the specified WorkloadIdentityConfig message. Does not implicitly {@link google.container.v1.WorkloadIdentityConfig.verify|verify} messages.
                 * @param message WorkloadIdentityConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IWorkloadIdentityConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified WorkloadIdentityConfig message, length delimited. Does not implicitly {@link google.container.v1.WorkloadIdentityConfig.verify|verify} messages.
                 * @param message WorkloadIdentityConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1.IWorkloadIdentityConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a WorkloadIdentityConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns WorkloadIdentityConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.WorkloadIdentityConfig;

                /**
                 * Decodes a WorkloadIdentityConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns WorkloadIdentityConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.WorkloadIdentityConfig;

                /**
                 * Verifies a WorkloadIdentityConfig message.
                 * @param message Plain 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 WorkloadIdentityConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns WorkloadIdentityConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.WorkloadIdentityConfig;

                /**
                 * Creates a plain object from a WorkloadIdentityConfig message. Also converts values to other types if specified.
                 * @param message WorkloadIdentityConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1.WorkloadIdentityConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this WorkloadIdentityConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for WorkloadIdentityConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of an IdentityServiceConfig. */
            interface IIdentityServiceConfig {

                /** IdentityServiceConfig enabled */
                enabled?: (boolean|null);
            }

            /** Represents an IdentityServiceConfig. */
            class IdentityServiceConfig implements IIdentityServiceConfig {

                /**
                 * Constructs a new IdentityServiceConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IIdentityServiceConfig);

                /** IdentityServiceConfig enabled. */
                public enabled: boolean;

                /**
                 * Creates a new IdentityServiceConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns IdentityServiceConfig instance
                 */
                public static create(properties?: google.container.v1.IIdentityServiceConfig): google.container.v1.IdentityServiceConfig;

                /**
                 * Encodes the specified IdentityServiceConfig message. Does not implicitly {@link google.container.v1.IdentityServiceConfig.verify|verify} messages.
                 * @param message IdentityServiceConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IIdentityServiceConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified IdentityServiceConfig message, length delimited. Does not implicitly {@link google.container.v1.IdentityServiceConfig.verify|verify} messages.
                 * @param message IdentityServiceConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1.IIdentityServiceConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes an IdentityServiceConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns IdentityServiceConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.IdentityServiceConfig;

                /**
                 * Decodes an IdentityServiceConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns IdentityServiceConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.IdentityServiceConfig;

                /**
                 * Verifies an IdentityServiceConfig message.
                 * @param message Plain 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 IdentityServiceConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns IdentityServiceConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.IdentityServiceConfig;

                /**
                 * Creates a plain object from an IdentityServiceConfig message. Also converts values to other types if specified.
                 * @param message IdentityServiceConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1.IdentityServiceConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this IdentityServiceConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for IdentityServiceConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a MeshCertificates. */
            interface IMeshCertificates {

                /** MeshCertificates enableCertificates */
                enableCertificates?: (google.protobuf.IBoolValue|null);
            }

            /** Represents a MeshCertificates. */
            class MeshCertificates implements IMeshCertificates {

                /**
                 * Constructs a new MeshCertificates.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IMeshCertificates);

                /** MeshCertificates enableCertificates. */
                public enableCertificates?: (google.protobuf.IBoolValue|null);

                /**
                 * Creates a new MeshCertificates instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns MeshCertificates instance
                 */
                public static create(properties?: google.container.v1.IMeshCertificates): google.container.v1.MeshCertificates;

                /**
                 * Encodes the specified MeshCertificates message. Does not implicitly {@link google.container.v1.MeshCertificates.verify|verify} messages.
                 * @param message MeshCertificates message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IMeshCertificates, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified MeshCertificates message, length delimited. Does not implicitly {@link google.container.v1.MeshCertificates.verify|verify} messages.
                 * @param message MeshCertificates message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1.IMeshCertificates, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a MeshCertificates message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns MeshCertificates
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.MeshCertificates;

                /**
                 * Decodes a MeshCertificates message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns MeshCertificates
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.MeshCertificates;

                /**
                 * Verifies a MeshCertificates message.
                 * @param message Plain 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 MeshCertificates message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns MeshCertificates
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.MeshCertificates;

                /**
                 * Creates a plain object from a MeshCertificates message. Also converts values to other types if specified.
                 * @param message MeshCertificates
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1.MeshCertificates, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this MeshCertificates to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for MeshCertificates
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a DatabaseEncryption. */
            interface IDatabaseEncryption {

                /** DatabaseEncryption keyName */
                keyName?: (string|null);

                /** DatabaseEncryption state */
                state?: (google.container.v1.DatabaseEncryption.State|keyof typeof google.container.v1.DatabaseEncryption.State|null);

                /** DatabaseEncryption currentState */
                currentState?: (google.container.v1.DatabaseEncryption.CurrentState|keyof typeof google.container.v1.DatabaseEncryption.CurrentState|null);

                /** DatabaseEncryption decryptionKeys */
                decryptionKeys?: (string[]|null);

                /** DatabaseEncryption lastOperationErrors */
                lastOperationErrors?: (google.container.v1.DatabaseEncryption.IOperationError[]|null);
            }

            /** Represents a DatabaseEncryption. */
            class DatabaseEncryption implements IDatabaseEncryption {

                /**
                 * Constructs a new DatabaseEncryption.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IDatabaseEncryption);

                /** DatabaseEncryption keyName. */
                public keyName: string;

                /** DatabaseEncryption state. */
                public state: (google.container.v1.DatabaseEncryption.State|keyof typeof google.container.v1.DatabaseEncryption.State);

                /** DatabaseEncryption currentState. */
                public currentState?: (google.container.v1.DatabaseEncryption.CurrentState|keyof typeof google.container.v1.DatabaseEncryption.CurrentState|null);

                /** DatabaseEncryption decryptionKeys. */
                public decryptionKeys: string[];

                /** DatabaseEncryption lastOperationErrors. */
                public lastOperationErrors: google.container.v1.DatabaseEncryption.IOperationError[];

                /**
                 * Creates a new DatabaseEncryption instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns DatabaseEncryption instance
                 */
                public static create(properties?: google.container.v1.IDatabaseEncryption): google.container.v1.DatabaseEncryption;

                /**
                 * Encodes the specified DatabaseEncryption message. Does not implicitly {@link google.container.v1.DatabaseEncryption.verify|verify} messages.
                 * @param message DatabaseEncryption message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IDatabaseEncryption, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified DatabaseEncryption message, length delimited. Does not implicitly {@link google.container.v1.DatabaseEncryption.verify|verify} messages.
                 * @param message DatabaseEncryption message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1.IDatabaseEncryption, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a DatabaseEncryption message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns DatabaseEncryption
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.DatabaseEncryption;

                /**
                 * Decodes a DatabaseEncryption message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns DatabaseEncryption
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.DatabaseEncryption;

                /**
                 * Verifies a DatabaseEncryption message.
                 * @param message Plain 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 DatabaseEncryption message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns DatabaseEncryption
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.DatabaseEncryption;

                /**
                 * Creates a plain object from a DatabaseEncryption message. Also converts values to other types if specified.
                 * @param message DatabaseEncryption
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1.DatabaseEncryption, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this DatabaseEncryption to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for DatabaseEncryption
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace DatabaseEncryption {

                /** State enum. */
                enum State {
                    UNKNOWN = 0,
                    ENCRYPTED = 1,
                    DECRYPTED = 2,
                    ALL_OBJECTS_ENCRYPTION_ENABLED = 3
                }

                /** CurrentState enum. */
                enum CurrentState {
                    CURRENT_STATE_UNSPECIFIED = 0,
                    CURRENT_STATE_ENCRYPTED = 7,
                    CURRENT_STATE_DECRYPTED = 2,
                    CURRENT_STATE_ENCRYPTION_PENDING = 3,
                    CURRENT_STATE_ENCRYPTION_ERROR = 4,
                    CURRENT_STATE_DECRYPTION_PENDING = 5,
                    CURRENT_STATE_DECRYPTION_ERROR = 6,
                    CURRENT_STATE_ALL_OBJECTS_ENCRYPTION_ENABLED = 8,
                    CURRENT_STATE_ALL_OBJECTS_ENCRYPTION_PENDING = 9,
                    CURRENT_STATE_ALL_OBJECTS_ENCRYPTION_ERROR = 10
                }

                /** Properties of an OperationError. */
                interface IOperationError {

                    /** OperationError keyName */
                    keyName?: (string|null);

                    /** OperationError errorMessage */
                    errorMessage?: (string|null);

                    /** OperationError timestamp */
                    timestamp?: (google.protobuf.ITimestamp|null);
                }

                /** Represents an OperationError. */
                class OperationError implements IOperationError {

                    /**
                     * Constructs a new OperationError.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.container.v1.DatabaseEncryption.IOperationError);

                    /** OperationError keyName. */
                    public keyName: string;

                    /** OperationError errorMessage. */
                    public errorMessage: string;

                    /** OperationError timestamp. */
                    public timestamp?: (google.protobuf.ITimestamp|null);

                    /**
                     * Creates a new OperationError instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns OperationError instance
                     */
                    public static create(properties?: google.container.v1.DatabaseEncryption.IOperationError): google.container.v1.DatabaseEncryption.OperationError;

                    /**
                     * Encodes the specified OperationError message. Does not implicitly {@link google.container.v1.DatabaseEncryption.OperationError.verify|verify} messages.
                     * @param message OperationError message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.container.v1.DatabaseEncryption.IOperationError, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified OperationError message, length delimited. Does not implicitly {@link google.container.v1.DatabaseEncryption.OperationError.verify|verify} messages.
                     * @param message OperationError message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.container.v1.DatabaseEncryption.IOperationError, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an OperationError message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns OperationError
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.DatabaseEncryption.OperationError;

                    /**
                     * Decodes an OperationError message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns OperationError
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.DatabaseEncryption.OperationError;

                    /**
                     * Verifies an OperationError message.
                     * @param message Plain 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 OperationError message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns OperationError
                     */
                    public static fromObject(object: { [k: string]: any }): google.container.v1.DatabaseEncryption.OperationError;

                    /**
                     * Creates a plain object from an OperationError message. Also converts values to other types if specified.
                     * @param message OperationError
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.container.v1.DatabaseEncryption.OperationError, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this OperationError to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for OperationError
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }
            }

            /** Properties of a ListUsableSubnetworksRequest. */
            interface IListUsableSubnetworksRequest {

                /** ListUsableSubnetworksRequest parent */
                parent?: (string|null);

                /** ListUsableSubnetworksRequest filter */
                filter?: (string|null);

                /** ListUsableSubnetworksRequest pageSize */
                pageSize?: (number|null);

                /** ListUsableSubnetworksRequest pageToken */
                pageToken?: (string|null);
            }

            /** Represents a ListUsableSubnetworksRequest. */
            class ListUsableSubnetworksRequest implements IListUsableSubnetworksRequest {

                /**
                 * Constructs a new ListUsableSubnetworksRequest.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IListUsableSubnetworksRequest);

                /** ListUsableSubnetworksRequest parent. */
                public parent: string;

                /** ListUsableSubnetworksRequest filter. */
                public filter: string;

                /** ListUsableSubnetworksRequest pageSize. */
                public pageSize: number;

                /** ListUsableSubnetworksRequest pageToken. */
                public pageToken: string;

                /**
                 * Creates a new ListUsableSubnetworksRequest instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ListUsableSubnetworksRequest instance
                 */
                public static create(properties?: google.container.v1.IListUsableSubnetworksRequest): google.container.v1.ListUsableSubnetworksRequest;

                /**
                 * Encodes the specified ListUsableSubnetworksRequest message. Does not implicitly {@link google.container.v1.ListUsableSubnetworksRequest.verify|verify} messages.
                 * @param message ListUsableSubnetworksRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IListUsableSubnetworksRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified ListUsableSubnetworksRequest message, length delimited. Does not implicitly {@link google.container.v1.ListUsableSubnetworksRequest.verify|verify} messages.
                 * @param message ListUsableSubnetworksRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1.IListUsableSubnetworksRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a ListUsableSubnetworksRequest message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ListUsableSubnetworksRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.ListUsableSubnetworksRequest;

                /**
                 * Decodes a ListUsableSubnetworksRequest message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ListUsableSubnetworksRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.ListUsableSubnetworksRequest;

                /**
                 * Verifies a ListUsableSubnetworksRequest message.
                 * @param message Plain 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 ListUsableSubnetworksRequest message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ListUsableSubnetworksRequest
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.ListUsableSubnetworksRequest;

                /**
                 * Creates a plain object from a ListUsableSubnetworksRequest message. Also converts values to other types if specified.
                 * @param message ListUsableSubnetworksRequest
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1.ListUsableSubnetworksRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ListUsableSubnetworksRequest to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for ListUsableSubnetworksRequest
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a ListUsableSubnetworksResponse. */
            interface IListUsableSubnetworksResponse {

                /** ListUsableSubnetworksResponse subnetworks */
                subnetworks?: (google.container.v1.IUsableSubnetwork[]|null);

                /** ListUsableSubnetworksResponse nextPageToken */
                nextPageToken?: (string|null);
            }

            /** Represents a ListUsableSubnetworksResponse. */
            class ListUsableSubnetworksResponse implements IListUsableSubnetworksResponse {

                /**
                 * Constructs a new ListUsableSubnetworksResponse.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IListUsableSubnetworksResponse);

                /** ListUsableSubnetworksResponse subnetworks. */
                public subnetworks: google.container.v1.IUsableSubnetwork[];

                /** ListUsableSubnetworksResponse nextPageToken. */
                public nextPageToken: string;

                /**
                 * Creates a new ListUsableSubnetworksResponse instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ListUsableSubnetworksResponse instance
                 */
                public static create(properties?: google.container.v1.IListUsableSubnetworksResponse): google.container.v1.ListUsableSubnetworksResponse;

                /**
                 * Encodes the specified ListUsableSubnetworksResponse message. Does not implicitly {@link google.container.v1.ListUsableSubnetworksResponse.verify|verify} messages.
                 * @param message ListUsableSubnetworksResponse message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IListUsableSubnetworksResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified ListUsableSubnetworksResponse message, length delimited. Does not implicitly {@link google.container.v1.ListUsableSubnetworksResponse.verify|verify} messages.
                 * @param message ListUsableSubnetworksResponse message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1.IListUsableSubnetworksResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a ListUsableSubnetworksResponse message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ListUsableSubnetworksResponse
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.ListUsableSubnetworksResponse;

                /**
                 * Decodes a ListUsableSubnetworksResponse message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ListUsableSubnetworksResponse
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.ListUsableSubnetworksResponse;

                /**
                 * Verifies a ListUsableSubnetworksResponse message.
                 * @param message Plain 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 ListUsableSubnetworksResponse message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ListUsableSubnetworksResponse
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.ListUsableSubnetworksResponse;

                /**
                 * Creates a plain object from a ListUsableSubnetworksResponse message. Also converts values to other types if specified.
                 * @param message ListUsableSubnetworksResponse
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1.ListUsableSubnetworksResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ListUsableSubnetworksResponse to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for ListUsableSubnetworksResponse
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a UsableSubnetworkSecondaryRange. */
            interface IUsableSubnetworkSecondaryRange {

                /** UsableSubnetworkSecondaryRange rangeName */
                rangeName?: (string|null);

                /** UsableSubnetworkSecondaryRange ipCidrRange */
                ipCidrRange?: (string|null);

                /** UsableSubnetworkSecondaryRange status */
                status?: (google.container.v1.UsableSubnetworkSecondaryRange.Status|keyof typeof google.container.v1.UsableSubnetworkSecondaryRange.Status|null);
            }

            /** Represents a UsableSubnetworkSecondaryRange. */
            class UsableSubnetworkSecondaryRange implements IUsableSubnetworkSecondaryRange {

                /**
                 * Constructs a new UsableSubnetworkSecondaryRange.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IUsableSubnetworkSecondaryRange);

                /** UsableSubnetworkSecondaryRange rangeName. */
                public rangeName: string;

                /** UsableSubnetworkSecondaryRange ipCidrRange. */
                public ipCidrRange: string;

                /** UsableSubnetworkSecondaryRange status. */
                public status: (google.container.v1.UsableSubnetworkSecondaryRange.Status|keyof typeof google.container.v1.UsableSubnetworkSecondaryRange.Status);

                /**
                 * Creates a new UsableSubnetworkSecondaryRange instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns UsableSubnetworkSecondaryRange instance
                 */
                public static create(properties?: google.container.v1.IUsableSubnetworkSecondaryRange): google.container.v1.UsableSubnetworkSecondaryRange;

                /**
                 * Encodes the specified UsableSubnetworkSecondaryRange message. Does not implicitly {@link google.container.v1.UsableSubnetworkSecondaryRange.verify|verify} messages.
                 * @param message UsableSubnetworkSecondaryRange message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IUsableSubnetworkSecondaryRange, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified UsableSubnetworkSecondaryRange message, length delimited. Does not implicitly {@link google.container.v1.UsableSubnetworkSecondaryRange.verify|verify} messages.
                 * @param message UsableSubnetworkSecondaryRange message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1.IUsableSubnetworkSecondaryRange, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a UsableSubnetworkSecondaryRange message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns UsableSubnetworkSecondaryRange
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.UsableSubnetworkSecondaryRange;

                /**
                 * Decodes a UsableSubnetworkSecondaryRange message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns UsableSubnetworkSecondaryRange
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.UsableSubnetworkSecondaryRange;

                /**
                 * Verifies a UsableSubnetworkSecondaryRange message.
                 * @param message Plain 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 UsableSubnetworkSecondaryRange message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns UsableSubnetworkSecondaryRange
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.UsableSubnetworkSecondaryRange;

                /**
                 * Creates a plain object from a UsableSubnetworkSecondaryRange message. Also converts values to other types if specified.
                 * @param message UsableSubnetworkSecondaryRange
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1.UsableSubnetworkSecondaryRange, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this UsableSubnetworkSecondaryRange to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for UsableSubnetworkSecondaryRange
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace UsableSubnetworkSecondaryRange {

                /** Status enum. */
                enum Status {
                    UNKNOWN = 0,
                    UNUSED = 1,
                    IN_USE_SERVICE = 2,
                    IN_USE_SHAREABLE_POD = 3,
                    IN_USE_MANAGED_POD = 4
                }
            }

            /** Properties of a UsableSubnetwork. */
            interface IUsableSubnetwork {

                /** UsableSubnetwork subnetwork */
                subnetwork?: (string|null);

                /** UsableSubnetwork network */
                network?: (string|null);

                /** UsableSubnetwork ipCidrRange */
                ipCidrRange?: (string|null);

                /** UsableSubnetwork secondaryIpRanges */
                secondaryIpRanges?: (google.container.v1.IUsableSubnetworkSecondaryRange[]|null);

                /** UsableSubnetwork statusMessage */
                statusMessage?: (string|null);
            }

            /** Represents a UsableSubnetwork. */
            class UsableSubnetwork implements IUsableSubnetwork {

                /**
                 * Constructs a new UsableSubnetwork.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IUsableSubnetwork);

                /** UsableSubnetwork subnetwork. */
                public subnetwork: string;

                /** UsableSubnetwork network. */
                public network: string;

                /** UsableSubnetwork ipCidrRange. */
                public ipCidrRange: string;

                /** UsableSubnetwork secondaryIpRanges. */
                public secondaryIpRanges: google.container.v1.IUsableSubnetworkSecondaryRange[];

                /** UsableSubnetwork statusMessage. */
                public statusMessage: string;

                /**
                 * Creates a new UsableSubnetwork instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns UsableSubnetwork instance
                 */
                public static create(properties?: google.container.v1.IUsableSubnetwork): google.container.v1.UsableSubnetwork;

                /**
                 * Encodes the specified UsableSubnetwork message. Does not implicitly {@link google.container.v1.UsableSubnetwork.verify|verify} messages.
                 * @param message UsableSubnetwork message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IUsableSubnetwork, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified UsableSubnetwork message, length delimited. Does not implicitly {@link google.container.v1.UsableSubnetwork.verify|verify} messages.
                 * @param message UsableSubnetwork message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1.IUsableSubnetwork, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a UsableSubnetwork message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns UsableSubnetwork
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.UsableSubnetwork;

                /**
                 * Decodes a UsableSubnetwork message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns UsableSubnetwork
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.UsableSubnetwork;

                /**
                 * Verifies a UsableSubnetwork message.
                 * @param message Plain 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 UsableSubnetwork message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns UsableSubnetwork
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.UsableSubnetwork;

                /**
                 * Creates a plain object from a UsableSubnetwork message. Also converts values to other types if specified.
                 * @param message UsableSubnetwork
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1.UsableSubnetwork, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this UsableSubnetwork to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for UsableSubnetwork
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a ResourceUsageExportConfig. */
            interface IResourceUsageExportConfig {

                /** ResourceUsageExportConfig bigqueryDestination */
                bigqueryDestination?: (google.container.v1.ResourceUsageExportConfig.IBigQueryDestination|null);

                /** ResourceUsageExportConfig enableNetworkEgressMetering */
                enableNetworkEgressMetering?: (boolean|null);

                /** ResourceUsageExportConfig consumptionMeteringConfig */
                consumptionMeteringConfig?: (google.container.v1.ResourceUsageExportConfig.IConsumptionMeteringConfig|null);
            }

            /** Represents a ResourceUsageExportConfig. */
            class ResourceUsageExportConfig implements IResourceUsageExportConfig {

                /**
                 * Constructs a new ResourceUsageExportConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IResourceUsageExportConfig);

                /** ResourceUsageExportConfig bigqueryDestination. */
                public bigqueryDestination?: (google.container.v1.ResourceUsageExportConfig.IBigQueryDestination|null);

                /** ResourceUsageExportConfig enableNetworkEgressMetering. */
                public enableNetworkEgressMetering: boolean;

                /** ResourceUsageExportConfig consumptionMeteringConfig. */
                public consumptionMeteringConfig?: (google.container.v1.ResourceUsageExportConfig.IConsumptionMeteringConfig|null);

                /**
                 * Creates a new ResourceUsageExportConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ResourceUsageExportConfig instance
                 */
                public static create(properties?: google.container.v1.IResourceUsageExportConfig): google.container.v1.ResourceUsageExportConfig;

                /**
                 * Encodes the specified ResourceUsageExportConfig message. Does not implicitly {@link google.container.v1.ResourceUsageExportConfig.verify|verify} messages.
                 * @param message ResourceUsageExportConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IResourceUsageExportConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified ResourceUsageExportConfig message, length delimited. Does not implicitly {@link google.container.v1.ResourceUsageExportConfig.verify|verify} messages.
                 * @param message ResourceUsageExportConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1.IResourceUsageExportConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a ResourceUsageExportConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ResourceUsageExportConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.ResourceUsageExportConfig;

                /**
                 * Decodes a ResourceUsageExportConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ResourceUsageExportConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.ResourceUsageExportConfig;

                /**
                 * Verifies a ResourceUsageExportConfig message.
                 * @param message Plain 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 ResourceUsageExportConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ResourceUsageExportConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.ResourceUsageExportConfig;

                /**
                 * Creates a plain object from a ResourceUsageExportConfig message. Also converts values to other types if specified.
                 * @param message ResourceUsageExportConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1.ResourceUsageExportConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ResourceUsageExportConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for ResourceUsageExportConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace ResourceUsageExportConfig {

                /** Properties of a BigQueryDestination. */
                interface IBigQueryDestination {

                    /** BigQueryDestination datasetId */
                    datasetId?: (string|null);
                }

                /** Represents a BigQueryDestination. */
                class BigQueryDestination implements IBigQueryDestination {

                    /**
                     * Constructs a new BigQueryDestination.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.container.v1.ResourceUsageExportConfig.IBigQueryDestination);

                    /** BigQueryDestination datasetId. */
                    public datasetId: string;

                    /**
                     * Creates a new BigQueryDestination instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BigQueryDestination instance
                     */
                    public static create(properties?: google.container.v1.ResourceUsageExportConfig.IBigQueryDestination): google.container.v1.ResourceUsageExportConfig.BigQueryDestination;

                    /**
                     * Encodes the specified BigQueryDestination message. Does not implicitly {@link google.container.v1.ResourceUsageExportConfig.BigQueryDestination.verify|verify} messages.
                     * @param message BigQueryDestination message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.container.v1.ResourceUsageExportConfig.IBigQueryDestination, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BigQueryDestination message, length delimited. Does not implicitly {@link google.container.v1.ResourceUsageExportConfig.BigQueryDestination.verify|verify} messages.
                     * @param message BigQueryDestination message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.container.v1.ResourceUsageExportConfig.IBigQueryDestination, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BigQueryDestination message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BigQueryDestination
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.ResourceUsageExportConfig.BigQueryDestination;

                    /**
                     * Decodes a BigQueryDestination message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BigQueryDestination
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.ResourceUsageExportConfig.BigQueryDestination;

                    /**
                     * Verifies a BigQueryDestination message.
                     * @param message Plain 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 BigQueryDestination message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BigQueryDestination
                     */
                    public static fromObject(object: { [k: string]: any }): google.container.v1.ResourceUsageExportConfig.BigQueryDestination;

                    /**
                     * Creates a plain object from a BigQueryDestination message. Also converts values to other types if specified.
                     * @param message BigQueryDestination
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.container.v1.ResourceUsageExportConfig.BigQueryDestination, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BigQueryDestination to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BigQueryDestination
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ConsumptionMeteringConfig. */
                interface IConsumptionMeteringConfig {

                    /** ConsumptionMeteringConfig enabled */
                    enabled?: (boolean|null);
                }

                /** Represents a ConsumptionMeteringConfig. */
                class ConsumptionMeteringConfig implements IConsumptionMeteringConfig {

                    /**
                     * Constructs a new ConsumptionMeteringConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.container.v1.ResourceUsageExportConfig.IConsumptionMeteringConfig);

                    /** ConsumptionMeteringConfig enabled. */
                    public enabled: boolean;

                    /**
                     * Creates a new ConsumptionMeteringConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ConsumptionMeteringConfig instance
                     */
                    public static create(properties?: google.container.v1.ResourceUsageExportConfig.IConsumptionMeteringConfig): google.container.v1.ResourceUsageExportConfig.ConsumptionMeteringConfig;

                    /**
                     * Encodes the specified ConsumptionMeteringConfig message. Does not implicitly {@link google.container.v1.ResourceUsageExportConfig.ConsumptionMeteringConfig.verify|verify} messages.
                     * @param message ConsumptionMeteringConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.container.v1.ResourceUsageExportConfig.IConsumptionMeteringConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ConsumptionMeteringConfig message, length delimited. Does not implicitly {@link google.container.v1.ResourceUsageExportConfig.ConsumptionMeteringConfig.verify|verify} messages.
                     * @param message ConsumptionMeteringConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.container.v1.ResourceUsageExportConfig.IConsumptionMeteringConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ConsumptionMeteringConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ConsumptionMeteringConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.ResourceUsageExportConfig.ConsumptionMeteringConfig;

                    /**
                     * Decodes a ConsumptionMeteringConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ConsumptionMeteringConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.ResourceUsageExportConfig.ConsumptionMeteringConfig;

                    /**
                     * Verifies a ConsumptionMeteringConfig message.
                     * @param message Plain 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 ConsumptionMeteringConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ConsumptionMeteringConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.container.v1.ResourceUsageExportConfig.ConsumptionMeteringConfig;

                    /**
                     * Creates a plain object from a ConsumptionMeteringConfig message. Also converts values to other types if specified.
                     * @param message ConsumptionMeteringConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.container.v1.ResourceUsageExportConfig.ConsumptionMeteringConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ConsumptionMeteringConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ConsumptionMeteringConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }
            }

            /** Properties of a VerticalPodAutoscaling. */
            interface IVerticalPodAutoscaling {

                /** VerticalPodAutoscaling enabled */
                enabled?: (boolean|null);
            }

            /** Represents a VerticalPodAutoscaling. */
            class VerticalPodAutoscaling implements IVerticalPodAutoscaling {

                /**
                 * Constructs a new VerticalPodAutoscaling.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IVerticalPodAutoscaling);

                /** VerticalPodAutoscaling enabled. */
                public enabled: boolean;

                /**
                 * Creates a new VerticalPodAutoscaling instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns VerticalPodAutoscaling instance
                 */
                public static create(properties?: google.container.v1.IVerticalPodAutoscaling): google.container.v1.VerticalPodAutoscaling;

                /**
                 * Encodes the specified VerticalPodAutoscaling message. Does not implicitly {@link google.container.v1.VerticalPodAutoscaling.verify|verify} messages.
                 * @param message VerticalPodAutoscaling message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IVerticalPodAutoscaling, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified VerticalPodAutoscaling message, length delimited. Does not implicitly {@link google.container.v1.VerticalPodAutoscaling.verify|verify} messages.
                 * @param message VerticalPodAutoscaling message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1.IVerticalPodAutoscaling, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a VerticalPodAutoscaling message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns VerticalPodAutoscaling
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.VerticalPodAutoscaling;

                /**
                 * Decodes a VerticalPodAutoscaling message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns VerticalPodAutoscaling
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.VerticalPodAutoscaling;

                /**
                 * Verifies a VerticalPodAutoscaling message.
                 * @param message Plain 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 VerticalPodAutoscaling message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns VerticalPodAutoscaling
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.VerticalPodAutoscaling;

                /**
                 * Creates a plain object from a VerticalPodAutoscaling message. Also converts values to other types if specified.
                 * @param message VerticalPodAutoscaling
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1.VerticalPodAutoscaling, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this VerticalPodAutoscaling to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for VerticalPodAutoscaling
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a DefaultSnatStatus. */
            interface IDefaultSnatStatus {

                /** DefaultSnatStatus disabled */
                disabled?: (boolean|null);
            }

            /** Represents a DefaultSnatStatus. */
            class DefaultSnatStatus implements IDefaultSnatStatus {

                /**
                 * Constructs a new DefaultSnatStatus.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IDefaultSnatStatus);

                /** DefaultSnatStatus disabled. */
                public disabled: boolean;

                /**
                 * Creates a new DefaultSnatStatus instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns DefaultSnatStatus instance
                 */
                public static create(properties?: google.container.v1.IDefaultSnatStatus): google.container.v1.DefaultSnatStatus;

                /**
                 * Encodes the specified DefaultSnatStatus message. Does not implicitly {@link google.container.v1.DefaultSnatStatus.verify|verify} messages.
                 * @param message DefaultSnatStatus message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IDefaultSnatStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified DefaultSnatStatus message, length delimited. Does not implicitly {@link google.container.v1.DefaultSnatStatus.verify|verify} messages.
                 * @param message DefaultSnatStatus message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1.IDefaultSnatStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a DefaultSnatStatus message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns DefaultSnatStatus
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.DefaultSnatStatus;

                /**
                 * Decodes a DefaultSnatStatus message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns DefaultSnatStatus
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.DefaultSnatStatus;

                /**
                 * Verifies a DefaultSnatStatus message.
                 * @param message Plain 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 DefaultSnatStatus message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns DefaultSnatStatus
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.DefaultSnatStatus;

                /**
                 * Creates a plain object from a DefaultSnatStatus message. Also converts values to other types if specified.
                 * @param message DefaultSnatStatus
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1.DefaultSnatStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this DefaultSnatStatus to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for DefaultSnatStatus
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a ShieldedNodes. */
            interface IShieldedNodes {

                /** ShieldedNodes enabled */
                enabled?: (boolean|null);
            }

            /** Represents a ShieldedNodes. */
            class ShieldedNodes implements IShieldedNodes {

                /**
                 * Constructs a new ShieldedNodes.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IShieldedNodes);

                /** ShieldedNodes enabled. */
                public enabled: boolean;

                /**
                 * Creates a new ShieldedNodes instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ShieldedNodes instance
                 */
                public static create(properties?: google.container.v1.IShieldedNodes): google.container.v1.ShieldedNodes;

                /**
                 * Encodes the specified ShieldedNodes message. Does not implicitly {@link google.container.v1.ShieldedNodes.verify|verify} messages.
                 * @param message ShieldedNodes message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IShieldedNodes, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified ShieldedNodes message, length delimited. Does not implicitly {@link google.container.v1.ShieldedNodes.verify|verify} messages.
                 * @param message ShieldedNodes message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1.IShieldedNodes, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a ShieldedNodes message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ShieldedNodes
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.ShieldedNodes;

                /**
                 * Decodes a ShieldedNodes message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ShieldedNodes
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.ShieldedNodes;

                /**
                 * Verifies a ShieldedNodes message.
                 * @param message Plain 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 ShieldedNodes message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ShieldedNodes
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.ShieldedNodes;

                /**
                 * Creates a plain object from a ShieldedNodes message. Also converts values to other types if specified.
                 * @param message ShieldedNodes
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1.ShieldedNodes, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ShieldedNodes to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for ShieldedNodes
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a VirtualNIC. */
            interface IVirtualNIC {

                /** VirtualNIC enabled */
                enabled?: (boolean|null);
            }

            /** Represents a VirtualNIC. */
            class VirtualNIC implements IVirtualNIC {

                /**
                 * Constructs a new VirtualNIC.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IVirtualNIC);

                /** VirtualNIC enabled. */
                public enabled: boolean;

                /**
                 * Creates a new VirtualNIC instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns VirtualNIC instance
                 */
                public static create(properties?: google.container.v1.IVirtualNIC): google.container.v1.VirtualNIC;

                /**
                 * Encodes the specified VirtualNIC message. Does not implicitly {@link google.container.v1.VirtualNIC.verify|verify} messages.
                 * @param message VirtualNIC message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IVirtualNIC, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified VirtualNIC message, length delimited. Does not implicitly {@link google.container.v1.VirtualNIC.verify|verify} messages.
                 * @param message VirtualNIC message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1.IVirtualNIC, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a VirtualNIC message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns VirtualNIC
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.VirtualNIC;

                /**
                 * Decodes a VirtualNIC message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns VirtualNIC
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.VirtualNIC;

                /**
                 * Verifies a VirtualNIC message.
                 * @param message Plain 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 VirtualNIC message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns VirtualNIC
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.VirtualNIC;

                /**
                 * Creates a plain object from a VirtualNIC message. Also converts values to other types if specified.
                 * @param message VirtualNIC
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1.VirtualNIC, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this VirtualNIC to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for VirtualNIC
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a FastSocket. */
            interface IFastSocket {

                /** FastSocket enabled */
                enabled?: (boolean|null);
            }

            /** Represents a FastSocket. */
            class FastSocket implements IFastSocket {

                /**
                 * Constructs a new FastSocket.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IFastSocket);

                /** FastSocket enabled. */
                public enabled: boolean;

                /**
                 * Creates a new FastSocket instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns FastSocket instance
                 */
                public static create(properties?: google.container.v1.IFastSocket): google.container.v1.FastSocket;

                /**
                 * Encodes the specified FastSocket message. Does not implicitly {@link google.container.v1.FastSocket.verify|verify} messages.
                 * @param message FastSocket message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IFastSocket, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified FastSocket message, length delimited. Does not implicitly {@link google.container.v1.FastSocket.verify|verify} messages.
                 * @param message FastSocket message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1.IFastSocket, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a FastSocket message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns FastSocket
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.FastSocket;

                /**
                 * Decodes a FastSocket message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns FastSocket
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.FastSocket;

                /**
                 * Verifies a FastSocket message.
                 * @param message Plain 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 FastSocket message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns FastSocket
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.FastSocket;

                /**
                 * Creates a plain object from a FastSocket message. Also converts values to other types if specified.
                 * @param message FastSocket
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1.FastSocket, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this FastSocket to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for FastSocket
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a GPUDirectConfig. */
            interface IGPUDirectConfig {

                /** GPUDirectConfig gpuDirectStrategy */
                gpuDirectStrategy?: (google.container.v1.GPUDirectConfig.GPUDirectStrategy|keyof typeof google.container.v1.GPUDirectConfig.GPUDirectStrategy|null);
            }

            /** Represents a GPUDirectConfig. */
            class GPUDirectConfig implements IGPUDirectConfig {

                /**
                 * Constructs a new GPUDirectConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IGPUDirectConfig);

                /** GPUDirectConfig gpuDirectStrategy. */
                public gpuDirectStrategy?: (google.container.v1.GPUDirectConfig.GPUDirectStrategy|keyof typeof google.container.v1.GPUDirectConfig.GPUDirectStrategy|null);

                /**
                 * Creates a new GPUDirectConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns GPUDirectConfig instance
                 */
                public static create(properties?: google.container.v1.IGPUDirectConfig): google.container.v1.GPUDirectConfig;

                /**
                 * Encodes the specified GPUDirectConfig message. Does not implicitly {@link google.container.v1.GPUDirectConfig.verify|verify} messages.
                 * @param message GPUDirectConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IGPUDirectConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified GPUDirectConfig message, length delimited. Does not implicitly {@link google.container.v1.GPUDirectConfig.verify|verify} messages.
                 * @param message GPUDirectConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1.IGPUDirectConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a GPUDirectConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns GPUDirectConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.GPUDirectConfig;

                /**
                 * Decodes a GPUDirectConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns GPUDirectConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.GPUDirectConfig;

                /**
                 * Verifies a GPUDirectConfig message.
                 * @param message Plain 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 GPUDirectConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns GPUDirectConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.GPUDirectConfig;

                /**
                 * Creates a plain object from a GPUDirectConfig message. Also converts values to other types if specified.
                 * @param message GPUDirectConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1.GPUDirectConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this GPUDirectConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for GPUDirectConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace GPUDirectConfig {

                /** GPUDirectStrategy enum. */
                enum GPUDirectStrategy {
                    GPU_DIRECT_STRATEGY_UNSPECIFIED = 0,
                    RDMA = 2
                }
            }

            /** PrivateIPv6GoogleAccess enum. */
            enum PrivateIPv6GoogleAccess {
                PRIVATE_IPV6_GOOGLE_ACCESS_UNSPECIFIED = 0,
                PRIVATE_IPV6_GOOGLE_ACCESS_DISABLED = 1,
                PRIVATE_IPV6_GOOGLE_ACCESS_TO_GOOGLE = 2,
                PRIVATE_IPV6_GOOGLE_ACCESS_BIDIRECTIONAL = 3
            }

            /** Properties of a NotificationConfig. */
            interface INotificationConfig {

                /** NotificationConfig pubsub */
                pubsub?: (google.container.v1.NotificationConfig.IPubSub|null);
            }

            /** Represents a NotificationConfig. */
            class NotificationConfig implements INotificationConfig {

                /**
                 * Constructs a new NotificationConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.INotificationConfig);

                /** NotificationConfig pubsub. */
                public pubsub?: (google.container.v1.NotificationConfig.IPubSub|null);

                /**
                 * Creates a new NotificationConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns NotificationConfig instance
                 */
                public static create(properties?: google.container.v1.INotificationConfig): google.container.v1.NotificationConfig;

                /**
                 * Encodes the specified NotificationConfig message. Does not implicitly {@link google.container.v1.NotificationConfig.verify|verify} messages.
                 * @param message NotificationConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.INotificationConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified NotificationConfig message, length delimited. Does not implicitly {@link google.container.v1.NotificationConfig.verify|verify} messages.
                 * @param message NotificationConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1.INotificationConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a NotificationConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns NotificationConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.NotificationConfig;

                /**
                 * Decodes a NotificationConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns NotificationConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.NotificationConfig;

                /**
                 * Verifies a NotificationConfig message.
                 * @param message Plain 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 NotificationConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns NotificationConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.NotificationConfig;

                /**
                 * Creates a plain object from a NotificationConfig message. Also converts values to other types if specified.
                 * @param message NotificationConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1.NotificationConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this NotificationConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for NotificationConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace NotificationConfig {

                /** EventType enum. */
                enum EventType {
                    EVENT_TYPE_UNSPECIFIED = 0,
                    UPGRADE_AVAILABLE_EVENT = 1,
                    UPGRADE_EVENT = 2,
                    SECURITY_BULLETIN_EVENT = 3,
                    UPGRADE_INFO_EVENT = 4
                }

                /** Properties of a PubSub. */
                interface IPubSub {

                    /** PubSub enabled */
                    enabled?: (boolean|null);

                    /** PubSub topic */
                    topic?: (string|null);

                    /** PubSub filter */
                    filter?: (google.container.v1.NotificationConfig.IFilter|null);
                }

                /** Represents a PubSub. */
                class PubSub implements IPubSub {

                    /**
                     * Constructs a new PubSub.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.container.v1.NotificationConfig.IPubSub);

                    /** PubSub enabled. */
                    public enabled: boolean;

                    /** PubSub topic. */
                    public topic: string;

                    /** PubSub filter. */
                    public filter?: (google.container.v1.NotificationConfig.IFilter|null);

                    /**
                     * Creates a new PubSub instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PubSub instance
                     */
                    public static create(properties?: google.container.v1.NotificationConfig.IPubSub): google.container.v1.NotificationConfig.PubSub;

                    /**
                     * Encodes the specified PubSub message. Does not implicitly {@link google.container.v1.NotificationConfig.PubSub.verify|verify} messages.
                     * @param message PubSub message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.container.v1.NotificationConfig.IPubSub, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PubSub message, length delimited. Does not implicitly {@link google.container.v1.NotificationConfig.PubSub.verify|verify} messages.
                     * @param message PubSub message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.container.v1.NotificationConfig.IPubSub, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PubSub message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PubSub
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.NotificationConfig.PubSub;

                    /**
                     * Decodes a PubSub message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PubSub
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.NotificationConfig.PubSub;

                    /**
                     * Verifies a PubSub message.
                     * @param message Plain 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 PubSub message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PubSub
                     */
                    public static fromObject(object: { [k: string]: any }): google.container.v1.NotificationConfig.PubSub;

                    /**
                     * Creates a plain object from a PubSub message. Also converts values to other types if specified.
                     * @param message PubSub
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.container.v1.NotificationConfig.PubSub, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PubSub to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PubSub
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a Filter. */
                interface IFilter {

                    /** Filter eventType */
                    eventType?: (google.container.v1.NotificationConfig.EventType[]|null);
                }

                /** Represents a Filter. */
                class Filter implements IFilter {

                    /**
                     * Constructs a new Filter.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.container.v1.NotificationConfig.IFilter);

                    /** Filter eventType. */
                    public eventType: google.container.v1.NotificationConfig.EventType[];

                    /**
                     * Creates a new Filter instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Filter instance
                     */
                    public static create(properties?: google.container.v1.NotificationConfig.IFilter): google.container.v1.NotificationConfig.Filter;

                    /**
                     * Encodes the specified Filter message. Does not implicitly {@link google.container.v1.NotificationConfig.Filter.verify|verify} messages.
                     * @param message Filter message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.container.v1.NotificationConfig.IFilter, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Filter message, length delimited. Does not implicitly {@link google.container.v1.NotificationConfig.Filter.verify|verify} messages.
                     * @param message Filter message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.container.v1.NotificationConfig.IFilter, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Filter message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Filter
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.NotificationConfig.Filter;

                    /**
                     * Decodes a Filter message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Filter
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.NotificationConfig.Filter;

                    /**
                     * Verifies a Filter message.
                     * @param message Plain 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 Filter message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Filter
                     */
                    public static fromObject(object: { [k: string]: any }): google.container.v1.NotificationConfig.Filter;

                    /**
                     * Creates a plain object from a Filter message. Also converts values to other types if specified.
                     * @param message Filter
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.container.v1.NotificationConfig.Filter, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Filter to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Filter
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }
            }

            /** Properties of a ConfidentialNodes. */
            interface IConfidentialNodes {

                /** ConfidentialNodes enabled */
                enabled?: (boolean|null);

                /** ConfidentialNodes confidentialInstanceType */
                confidentialInstanceType?: (google.container.v1.ConfidentialNodes.ConfidentialInstanceType|keyof typeof google.container.v1.ConfidentialNodes.ConfidentialInstanceType|null);
            }

            /** Represents a ConfidentialNodes. */
            class ConfidentialNodes implements IConfidentialNodes {

                /**
                 * Constructs a new ConfidentialNodes.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IConfidentialNodes);

                /** ConfidentialNodes enabled. */
                public enabled: boolean;

                /** ConfidentialNodes confidentialInstanceType. */
                public confidentialInstanceType: (google.container.v1.ConfidentialNodes.ConfidentialInstanceType|keyof typeof google.container.v1.ConfidentialNodes.ConfidentialInstanceType);

                /**
                 * Creates a new ConfidentialNodes instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ConfidentialNodes instance
                 */
                public static create(properties?: google.container.v1.IConfidentialNodes): google.container.v1.ConfidentialNodes;

                /**
                 * Encodes the specified ConfidentialNodes message. Does not implicitly {@link google.container.v1.ConfidentialNodes.verify|verify} messages.
                 * @param message ConfidentialNodes message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IConfidentialNodes, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified ConfidentialNodes message, length delimited. Does not implicitly {@link google.container.v1.ConfidentialNodes.verify|verify} messages.
                 * @param message ConfidentialNodes message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1.IConfidentialNodes, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a ConfidentialNodes message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ConfidentialNodes
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.ConfidentialNodes;

                /**
                 * Decodes a ConfidentialNodes message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ConfidentialNodes
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.ConfidentialNodes;

                /**
                 * Verifies a ConfidentialNodes message.
                 * @param message Plain 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 ConfidentialNodes message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ConfidentialNodes
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.ConfidentialNodes;

                /**
                 * Creates a plain object from a ConfidentialNodes message. Also converts values to other types if specified.
                 * @param message ConfidentialNodes
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1.ConfidentialNodes, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ConfidentialNodes to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for ConfidentialNodes
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace ConfidentialNodes {

                /** ConfidentialInstanceType enum. */
                enum ConfidentialInstanceType {
                    CONFIDENTIAL_INSTANCE_TYPE_UNSPECIFIED = 0,
                    SEV = 1,
                    SEV_SNP = 2,
                    TDX = 3
                }
            }

            /** UpgradeResourceType enum. */
            enum UpgradeResourceType {
                UPGRADE_RESOURCE_TYPE_UNSPECIFIED = 0,
                MASTER = 1,
                NODE_POOL = 2
            }

            /** Properties of an UpgradeEvent. */
            interface IUpgradeEvent {

                /** UpgradeEvent resourceType */
                resourceType?: (google.container.v1.UpgradeResourceType|keyof typeof google.container.v1.UpgradeResourceType|null);

                /** UpgradeEvent operation */
                operation?: (string|null);

                /** UpgradeEvent operationStartTime */
                operationStartTime?: (google.protobuf.ITimestamp|null);

                /** UpgradeEvent currentVersion */
                currentVersion?: (string|null);

                /** UpgradeEvent targetVersion */
                targetVersion?: (string|null);

                /** UpgradeEvent resource */
                resource?: (string|null);
            }

            /** Represents an UpgradeEvent. */
            class UpgradeEvent implements IUpgradeEvent {

                /**
                 * Constructs a new UpgradeEvent.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IUpgradeEvent);

                /** UpgradeEvent resourceType. */
                public resourceType: (google.container.v1.UpgradeResourceType|keyof typeof google.container.v1.UpgradeResourceType);

                /** UpgradeEvent operation. */
                public operation: string;

                /** UpgradeEvent operationStartTime. */
                public operationStartTime?: (google.protobuf.ITimestamp|null);

                /** UpgradeEvent currentVersion. */
                public currentVersion: string;

                /** UpgradeEvent targetVersion. */
                public targetVersion: string;

                /** UpgradeEvent resource. */
                public resource: string;

                /**
                 * Creates a new UpgradeEvent instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns UpgradeEvent instance
                 */
                public static create(properties?: google.container.v1.IUpgradeEvent): google.container.v1.UpgradeEvent;

                /**
                 * Encodes the specified UpgradeEvent message. Does not implicitly {@link google.container.v1.UpgradeEvent.verify|verify} messages.
                 * @param message UpgradeEvent message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IUpgradeEvent, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified UpgradeEvent message, length delimited. Does not implicitly {@link google.container.v1.UpgradeEvent.verify|verify} messages.
                 * @param message UpgradeEvent message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1.IUpgradeEvent, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes an UpgradeEvent message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns UpgradeEvent
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.UpgradeEvent;

                /**
                 * Decodes an UpgradeEvent message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns UpgradeEvent
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.UpgradeEvent;

                /**
                 * Verifies an UpgradeEvent message.
                 * @param message Plain 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 UpgradeEvent message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns UpgradeEvent
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.UpgradeEvent;

                /**
                 * Creates a plain object from an UpgradeEvent message. Also converts values to other types if specified.
                 * @param message UpgradeEvent
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1.UpgradeEvent, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this UpgradeEvent to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for UpgradeEvent
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of an UpgradeInfoEvent. */
            interface IUpgradeInfoEvent {

                /** UpgradeInfoEvent resourceType */
                resourceType?: (google.container.v1.UpgradeResourceType|keyof typeof google.container.v1.UpgradeResourceType|null);

                /** UpgradeInfoEvent operation */
                operation?: (string|null);

                /** UpgradeInfoEvent startTime */
                startTime?: (google.protobuf.ITimestamp|null);

                /** UpgradeInfoEvent endTime */
                endTime?: (google.protobuf.ITimestamp|null);

                /** UpgradeInfoEvent currentVersion */
                currentVersion?: (string|null);

                /** UpgradeInfoEvent targetVersion */
                targetVersion?: (string|null);

                /** UpgradeInfoEvent resource */
                resource?: (string|null);

                /** UpgradeInfoEvent state */
                state?: (google.container.v1.UpgradeInfoEvent.State|keyof typeof google.container.v1.UpgradeInfoEvent.State|null);

                /** UpgradeInfoEvent standardSupportEndTime */
                standardSupportEndTime?: (google.protobuf.ITimestamp|null);

                /** UpgradeInfoEvent extendedSupportEndTime */
                extendedSupportEndTime?: (google.protobuf.ITimestamp|null);

                /** UpgradeInfoEvent description */
                description?: (string|null);

                /** UpgradeInfoEvent eventType */
                eventType?: (google.container.v1.UpgradeInfoEvent.EventType|keyof typeof google.container.v1.UpgradeInfoEvent.EventType|null);

                /** UpgradeInfoEvent disruptionEvent */
                disruptionEvent?: (google.container.v1.IDisruptionEvent|null);
            }

            /** Represents an UpgradeInfoEvent. */
            class UpgradeInfoEvent implements IUpgradeInfoEvent {

                /**
                 * Constructs a new UpgradeInfoEvent.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IUpgradeInfoEvent);

                /** UpgradeInfoEvent resourceType. */
                public resourceType: (google.container.v1.UpgradeResourceType|keyof typeof google.container.v1.UpgradeResourceType);

                /** UpgradeInfoEvent operation. */
                public operation: string;

                /** UpgradeInfoEvent startTime. */
                public startTime?: (google.protobuf.ITimestamp|null);

                /** UpgradeInfoEvent endTime. */
                public endTime?: (google.protobuf.ITimestamp|null);

                /** UpgradeInfoEvent currentVersion. */
                public currentVersion: string;

                /** UpgradeInfoEvent targetVersion. */
                public targetVersion: string;

                /** UpgradeInfoEvent resource. */
                public resource: string;

                /** UpgradeInfoEvent state. */
                public state: (google.container.v1.UpgradeInfoEvent.State|keyof typeof google.container.v1.UpgradeInfoEvent.State);

                /** UpgradeInfoEvent standardSupportEndTime. */
                public standardSupportEndTime?: (google.protobuf.ITimestamp|null);

                /** UpgradeInfoEvent extendedSupportEndTime. */
                public extendedSupportEndTime?: (google.protobuf.ITimestamp|null);

                /** UpgradeInfoEvent description. */
                public description: string;

                /** UpgradeInfoEvent eventType. */
                public eventType: (google.container.v1.UpgradeInfoEvent.EventType|keyof typeof google.container.v1.UpgradeInfoEvent.EventType);

                /** UpgradeInfoEvent disruptionEvent. */
                public disruptionEvent?: (google.container.v1.IDisruptionEvent|null);

                /**
                 * Creates a new UpgradeInfoEvent instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns UpgradeInfoEvent instance
                 */
                public static create(properties?: google.container.v1.IUpgradeInfoEvent): google.container.v1.UpgradeInfoEvent;

                /**
                 * Encodes the specified UpgradeInfoEvent message. Does not implicitly {@link google.container.v1.UpgradeInfoEvent.verify|verify} messages.
                 * @param message UpgradeInfoEvent message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IUpgradeInfoEvent, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified UpgradeInfoEvent message, length delimited. Does not implicitly {@link google.container.v1.UpgradeInfoEvent.verify|verify} messages.
                 * @param message UpgradeInfoEvent message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1.IUpgradeInfoEvent, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes an UpgradeInfoEvent message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns UpgradeInfoEvent
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.UpgradeInfoEvent;

                /**
                 * Decodes an UpgradeInfoEvent message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns UpgradeInfoEvent
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.UpgradeInfoEvent;

                /**
                 * Verifies an UpgradeInfoEvent message.
                 * @param message Plain 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 UpgradeInfoEvent message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns UpgradeInfoEvent
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.UpgradeInfoEvent;

                /**
                 * Creates a plain object from an UpgradeInfoEvent message. Also converts values to other types if specified.
                 * @param message UpgradeInfoEvent
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1.UpgradeInfoEvent, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this UpgradeInfoEvent to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for UpgradeInfoEvent
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace UpgradeInfoEvent {

                /** State enum. */
                enum State {
                    STATE_UNSPECIFIED = 0,
                    SCHEDULED = 1,
                    STARTED = 3,
                    SUCCEEDED = 4,
                    FAILED = 5,
                    CANCELED = 6
                }

                /** EventType enum. */
                enum EventType {
                    EVENT_TYPE_UNSPECIFIED = 0,
                    END_OF_SUPPORT = 1,
                    COS_MILESTONE_VERSION_UPDATE = 2,
                    UPGRADE_LIFECYCLE = 3,
                    DISRUPTION_EVENT = 4
                }
            }

            /** Properties of a DisruptionEvent. */
            interface IDisruptionEvent {

                /** DisruptionEvent disruptionType */
                disruptionType?: (google.container.v1.DisruptionEvent.DisruptionType|keyof typeof google.container.v1.DisruptionEvent.DisruptionType|null);

                /** DisruptionEvent pdbBlockedNode */
                pdbBlockedNode?: (string|null);

                /** DisruptionEvent pdbBlockedPod */
                pdbBlockedPod?: (google.container.v1.DisruptionEvent.IPdbBlockedPod[]|null);

                /** DisruptionEvent pdbViolationTimeout */
                pdbViolationTimeout?: (google.protobuf.IDuration|null);
            }

            /** Represents a DisruptionEvent. */
            class DisruptionEvent implements IDisruptionEvent {

                /**
                 * Constructs a new DisruptionEvent.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IDisruptionEvent);

                /** DisruptionEvent disruptionType. */
                public disruptionType: (google.container.v1.DisruptionEvent.DisruptionType|keyof typeof google.container.v1.DisruptionEvent.DisruptionType);

                /** DisruptionEvent pdbBlockedNode. */
                public pdbBlockedNode: string;

                /** DisruptionEvent pdbBlockedPod. */
                public pdbBlockedPod: google.container.v1.DisruptionEvent.IPdbBlockedPod[];

                /** DisruptionEvent pdbViolationTimeout. */
                public pdbViolationTimeout?: (google.protobuf.IDuration|null);

                /**
                 * Creates a new DisruptionEvent instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns DisruptionEvent instance
                 */
                public static create(properties?: google.container.v1.IDisruptionEvent): google.container.v1.DisruptionEvent;

                /**
                 * Encodes the specified DisruptionEvent message. Does not implicitly {@link google.container.v1.DisruptionEvent.verify|verify} messages.
                 * @param message DisruptionEvent message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IDisruptionEvent, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified DisruptionEvent message, length delimited. Does not implicitly {@link google.container.v1.DisruptionEvent.verify|verify} messages.
                 * @param message DisruptionEvent message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1.IDisruptionEvent, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a DisruptionEvent message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns DisruptionEvent
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.DisruptionEvent;

                /**
                 * Decodes a DisruptionEvent message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns DisruptionEvent
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.DisruptionEvent;

                /**
                 * Verifies a DisruptionEvent message.
                 * @param message Plain 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 DisruptionEvent message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns DisruptionEvent
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.DisruptionEvent;

                /**
                 * Creates a plain object from a DisruptionEvent message. Also converts values to other types if specified.
                 * @param message DisruptionEvent
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1.DisruptionEvent, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this DisruptionEvent to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for DisruptionEvent
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace DisruptionEvent {

                /** DisruptionType enum. */
                enum DisruptionType {
                    DISRUPTION_TYPE_UNSPECIFIED = 0,
                    POD_NOT_ENOUGH_PDB = 1,
                    POD_PDB_VIOLATION = 2
                }

                /** Properties of a PdbBlockedPod. */
                interface IPdbBlockedPod {

                    /** PdbBlockedPod namespace */
                    namespace?: (string|null);

                    /** PdbBlockedPod name */
                    name?: (string|null);
                }

                /** Represents a PdbBlockedPod. */
                class PdbBlockedPod implements IPdbBlockedPod {

                    /**
                     * Constructs a new PdbBlockedPod.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.container.v1.DisruptionEvent.IPdbBlockedPod);

                    /** PdbBlockedPod namespace. */
                    public namespace: string;

                    /** PdbBlockedPod name. */
                    public name: string;

                    /**
                     * Creates a new PdbBlockedPod instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PdbBlockedPod instance
                     */
                    public static create(properties?: google.container.v1.DisruptionEvent.IPdbBlockedPod): google.container.v1.DisruptionEvent.PdbBlockedPod;

                    /**
                     * Encodes the specified PdbBlockedPod message. Does not implicitly {@link google.container.v1.DisruptionEvent.PdbBlockedPod.verify|verify} messages.
                     * @param message PdbBlockedPod message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.container.v1.DisruptionEvent.IPdbBlockedPod, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PdbBlockedPod message, length delimited. Does not implicitly {@link google.container.v1.DisruptionEvent.PdbBlockedPod.verify|verify} messages.
                     * @param message PdbBlockedPod message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.container.v1.DisruptionEvent.IPdbBlockedPod, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PdbBlockedPod message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PdbBlockedPod
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.DisruptionEvent.PdbBlockedPod;

                    /**
                     * Decodes a PdbBlockedPod message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PdbBlockedPod
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.DisruptionEvent.PdbBlockedPod;

                    /**
                     * Verifies a PdbBlockedPod message.
                     * @param message Plain 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 PdbBlockedPod message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PdbBlockedPod
                     */
                    public static fromObject(object: { [k: string]: any }): google.container.v1.DisruptionEvent.PdbBlockedPod;

                    /**
                     * Creates a plain object from a PdbBlockedPod message. Also converts values to other types if specified.
                     * @param message PdbBlockedPod
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.container.v1.DisruptionEvent.PdbBlockedPod, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PdbBlockedPod to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PdbBlockedPod
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }
            }

            /** Properties of an UpgradeAvailableEvent. */
            interface IUpgradeAvailableEvent {

                /** UpgradeAvailableEvent version */
                version?: (string|null);

                /** UpgradeAvailableEvent resourceType */
                resourceType?: (google.container.v1.UpgradeResourceType|keyof typeof google.container.v1.UpgradeResourceType|null);

                /** UpgradeAvailableEvent releaseChannel */
                releaseChannel?: (google.container.v1.IReleaseChannel|null);

                /** UpgradeAvailableEvent resource */
                resource?: (string|null);
            }

            /** Represents an UpgradeAvailableEvent. */
            class UpgradeAvailableEvent implements IUpgradeAvailableEvent {

                /**
                 * Constructs a new UpgradeAvailableEvent.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IUpgradeAvailableEvent);

                /** UpgradeAvailableEvent version. */
                public version: string;

                /** UpgradeAvailableEvent resourceType. */
                public resourceType: (google.container.v1.UpgradeResourceType|keyof typeof google.container.v1.UpgradeResourceType);

                /** UpgradeAvailableEvent releaseChannel. */
                public releaseChannel?: (google.container.v1.IReleaseChannel|null);

                /** UpgradeAvailableEvent resource. */
                public resource: string;

                /**
                 * Creates a new UpgradeAvailableEvent instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns UpgradeAvailableEvent instance
                 */
                public static create(properties?: google.container.v1.IUpgradeAvailableEvent): google.container.v1.UpgradeAvailableEvent;

                /**
                 * Encodes the specified UpgradeAvailableEvent message. Does not implicitly {@link google.container.v1.UpgradeAvailableEvent.verify|verify} messages.
                 * @param message UpgradeAvailableEvent message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IUpgradeAvailableEvent, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified UpgradeAvailableEvent message, length delimited. Does not implicitly {@link google.container.v1.UpgradeAvailableEvent.verify|verify} messages.
                 * @param message UpgradeAvailableEvent message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1.IUpgradeAvailableEvent, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes an UpgradeAvailableEvent message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns UpgradeAvailableEvent
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.UpgradeAvailableEvent;

                /**
                 * Decodes an UpgradeAvailableEvent message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns UpgradeAvailableEvent
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.UpgradeAvailableEvent;

                /**
                 * Verifies an UpgradeAvailableEvent message.
                 * @param message Plain 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 UpgradeAvailableEvent message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns UpgradeAvailableEvent
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.UpgradeAvailableEvent;

                /**
                 * Creates a plain object from an UpgradeAvailableEvent message. Also converts values to other types if specified.
                 * @param message UpgradeAvailableEvent
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1.UpgradeAvailableEvent, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this UpgradeAvailableEvent to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for UpgradeAvailableEvent
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a SecurityBulletinEvent. */
            interface ISecurityBulletinEvent {

                /** SecurityBulletinEvent resourceTypeAffected */
                resourceTypeAffected?: (string|null);

                /** SecurityBulletinEvent bulletinId */
                bulletinId?: (string|null);

                /** SecurityBulletinEvent cveIds */
                cveIds?: (string[]|null);

                /** SecurityBulletinEvent severity */
                severity?: (string|null);

                /** SecurityBulletinEvent bulletinUri */
                bulletinUri?: (string|null);

                /** SecurityBulletinEvent briefDescription */
                briefDescription?: (string|null);

                /** SecurityBulletinEvent affectedSupportedMinors */
                affectedSupportedMinors?: (string[]|null);

                /** SecurityBulletinEvent patchedVersions */
                patchedVersions?: (string[]|null);

                /** SecurityBulletinEvent suggestedUpgradeTarget */
                suggestedUpgradeTarget?: (string|null);

                /** SecurityBulletinEvent manualStepsRequired */
                manualStepsRequired?: (boolean|null);

                /** SecurityBulletinEvent mitigatedVersions */
                mitigatedVersions?: (string[]|null);
            }

            /** Represents a SecurityBulletinEvent. */
            class SecurityBulletinEvent implements ISecurityBulletinEvent {

                /**
                 * Constructs a new SecurityBulletinEvent.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.ISecurityBulletinEvent);

                /** SecurityBulletinEvent resourceTypeAffected. */
                public resourceTypeAffected: string;

                /** SecurityBulletinEvent bulletinId. */
                public bulletinId: string;

                /** SecurityBulletinEvent cveIds. */
                public cveIds: string[];

                /** SecurityBulletinEvent severity. */
                public severity: string;

                /** SecurityBulletinEvent bulletinUri. */
                public bulletinUri: string;

                /** SecurityBulletinEvent briefDescription. */
                public briefDescription: string;

                /** SecurityBulletinEvent affectedSupportedMinors. */
                public affectedSupportedMinors: string[];

                /** SecurityBulletinEvent patchedVersions. */
                public patchedVersions: string[];

                /** SecurityBulletinEvent suggestedUpgradeTarget. */
                public suggestedUpgradeTarget: string;

                /** SecurityBulletinEvent manualStepsRequired. */
                public manualStepsRequired: boolean;

                /** SecurityBulletinEvent mitigatedVersions. */
                public mitigatedVersions: string[];

                /**
                 * Creates a new SecurityBulletinEvent instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns SecurityBulletinEvent instance
                 */
                public static create(properties?: google.container.v1.ISecurityBulletinEvent): google.container.v1.SecurityBulletinEvent;

                /**
                 * Encodes the specified SecurityBulletinEvent message. Does not implicitly {@link google.container.v1.SecurityBulletinEvent.verify|verify} messages.
                 * @param message SecurityBulletinEvent message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.ISecurityBulletinEvent, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified SecurityBulletinEvent message, length delimited. Does not implicitly {@link google.container.v1.SecurityBulletinEvent.verify|verify} messages.
                 * @param message SecurityBulletinEvent message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1.ISecurityBulletinEvent, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a SecurityBulletinEvent message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns SecurityBulletinEvent
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.SecurityBulletinEvent;

                /**
                 * Decodes a SecurityBulletinEvent message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns SecurityBulletinEvent
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.SecurityBulletinEvent;

                /**
                 * Verifies a SecurityBulletinEvent message.
                 * @param message Plain 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 SecurityBulletinEvent message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns SecurityBulletinEvent
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.SecurityBulletinEvent;

                /**
                 * Creates a plain object from a SecurityBulletinEvent message. Also converts values to other types if specified.
                 * @param message SecurityBulletinEvent
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1.SecurityBulletinEvent, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this SecurityBulletinEvent to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for SecurityBulletinEvent
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of an Autopilot. */
            interface IAutopilot {

                /** Autopilot enabled */
                enabled?: (boolean|null);

                /** Autopilot workloadPolicyConfig */
                workloadPolicyConfig?: (google.container.v1.IWorkloadPolicyConfig|null);

                /** Autopilot privilegedAdmissionConfig */
                privilegedAdmissionConfig?: (google.container.v1.IPrivilegedAdmissionConfig|null);

                /** Autopilot clusterPolicyConfig */
                clusterPolicyConfig?: (google.container.v1.IClusterPolicyConfig|null);
            }

            /** Represents an Autopilot. */
            class Autopilot implements IAutopilot {

                /**
                 * Constructs a new Autopilot.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IAutopilot);

                /** Autopilot enabled. */
                public enabled: boolean;

                /** Autopilot workloadPolicyConfig. */
                public workloadPolicyConfig?: (google.container.v1.IWorkloadPolicyConfig|null);

                /** Autopilot privilegedAdmissionConfig. */
                public privilegedAdmissionConfig?: (google.container.v1.IPrivilegedAdmissionConfig|null);

                /** Autopilot clusterPolicyConfig. */
                public clusterPolicyConfig?: (google.container.v1.IClusterPolicyConfig|null);

                /**
                 * Creates a new Autopilot instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns Autopilot instance
                 */
                public static create(properties?: google.container.v1.IAutopilot): google.container.v1.Autopilot;

                /**
                 * Encodes the specified Autopilot message. Does not implicitly {@link google.container.v1.Autopilot.verify|verify} messages.
                 * @param message Autopilot message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IAutopilot, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified Autopilot message, length delimited. Does not implicitly {@link google.container.v1.Autopilot.verify|verify} messages.
                 * @param message Autopilot message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1.IAutopilot, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes an Autopilot message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns Autopilot
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.Autopilot;

                /**
                 * Decodes an Autopilot message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns Autopilot
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.Autopilot;

                /**
                 * Verifies an Autopilot message.
                 * @param message Plain 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 Autopilot message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns Autopilot
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.Autopilot;

                /**
                 * Creates a plain object from an Autopilot message. Also converts values to other types if specified.
                 * @param message Autopilot
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1.Autopilot, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this Autopilot to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for Autopilot
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a ClusterPolicyConfig. */
            interface IClusterPolicyConfig {

                /** ClusterPolicyConfig noSystemMutation */
                noSystemMutation?: (boolean|null);

                /** ClusterPolicyConfig noSystemImpersonation */
                noSystemImpersonation?: (boolean|null);

                /** ClusterPolicyConfig noUnsafeWebhooks */
                noUnsafeWebhooks?: (boolean|null);

                /** ClusterPolicyConfig noStandardNodePools */
                noStandardNodePools?: (boolean|null);
            }

            /** Represents a ClusterPolicyConfig. */
            class ClusterPolicyConfig implements IClusterPolicyConfig {

                /**
                 * Constructs a new ClusterPolicyConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IClusterPolicyConfig);

                /** ClusterPolicyConfig noSystemMutation. */
                public noSystemMutation?: (boolean|null);

                /** ClusterPolicyConfig noSystemImpersonation. */
                public noSystemImpersonation?: (boolean|null);

                /** ClusterPolicyConfig noUnsafeWebhooks. */
                public noUnsafeWebhooks?: (boolean|null);

                /** ClusterPolicyConfig noStandardNodePools. */
                public noStandardNodePools?: (boolean|null);

                /**
                 * Creates a new ClusterPolicyConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ClusterPolicyConfig instance
                 */
                public static create(properties?: google.container.v1.IClusterPolicyConfig): google.container.v1.ClusterPolicyConfig;

                /**
                 * Encodes the specified ClusterPolicyConfig message. Does not implicitly {@link google.container.v1.ClusterPolicyConfig.verify|verify} messages.
                 * @param message ClusterPolicyConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IClusterPolicyConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified ClusterPolicyConfig message, length delimited. Does not implicitly {@link google.container.v1.ClusterPolicyConfig.verify|verify} messages.
                 * @param message ClusterPolicyConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1.IClusterPolicyConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a ClusterPolicyConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ClusterPolicyConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.ClusterPolicyConfig;

                /**
                 * Decodes a ClusterPolicyConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ClusterPolicyConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.ClusterPolicyConfig;

                /**
                 * Verifies a ClusterPolicyConfig message.
                 * @param message Plain 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 ClusterPolicyConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ClusterPolicyConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.ClusterPolicyConfig;

                /**
                 * Creates a plain object from a ClusterPolicyConfig message. Also converts values to other types if specified.
                 * @param message ClusterPolicyConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1.ClusterPolicyConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ClusterPolicyConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for ClusterPolicyConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a PrivilegedAdmissionConfig. */
            interface IPrivilegedAdmissionConfig {

                /** PrivilegedAdmissionConfig allowlistPaths */
                allowlistPaths?: (string[]|null);
            }

            /** Represents a PrivilegedAdmissionConfig. */
            class PrivilegedAdmissionConfig implements IPrivilegedAdmissionConfig {

                /**
                 * Constructs a new PrivilegedAdmissionConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IPrivilegedAdmissionConfig);

                /** PrivilegedAdmissionConfig allowlistPaths. */
                public allowlistPaths: string[];

                /**
                 * Creates a new PrivilegedAdmissionConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns PrivilegedAdmissionConfig instance
                 */
                public static create(properties?: google.container.v1.IPrivilegedAdmissionConfig): google.container.v1.PrivilegedAdmissionConfig;

                /**
                 * Encodes the specified PrivilegedAdmissionConfig message. Does not implicitly {@link google.container.v1.PrivilegedAdmissionConfig.verify|verify} messages.
                 * @param message PrivilegedAdmissionConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IPrivilegedAdmissionConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified PrivilegedAdmissionConfig message, length delimited. Does not implicitly {@link google.container.v1.PrivilegedAdmissionConfig.verify|verify} messages.
                 * @param message PrivilegedAdmissionConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1.IPrivilegedAdmissionConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a PrivilegedAdmissionConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns PrivilegedAdmissionConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.PrivilegedAdmissionConfig;

                /**
                 * Decodes a PrivilegedAdmissionConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns PrivilegedAdmissionConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.PrivilegedAdmissionConfig;

                /**
                 * Verifies a PrivilegedAdmissionConfig message.
                 * @param message Plain 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 PrivilegedAdmissionConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns PrivilegedAdmissionConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.PrivilegedAdmissionConfig;

                /**
                 * Creates a plain object from a PrivilegedAdmissionConfig message. Also converts values to other types if specified.
                 * @param message PrivilegedAdmissionConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1.PrivilegedAdmissionConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this PrivilegedAdmissionConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for PrivilegedAdmissionConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a WorkloadPolicyConfig. */
            interface IWorkloadPolicyConfig {

                /** WorkloadPolicyConfig allowNetAdmin */
                allowNetAdmin?: (boolean|null);

                /** WorkloadPolicyConfig autopilotCompatibilityAuditingEnabled */
                autopilotCompatibilityAuditingEnabled?: (boolean|null);
            }

            /** Represents a WorkloadPolicyConfig. */
            class WorkloadPolicyConfig implements IWorkloadPolicyConfig {

                /**
                 * Constructs a new WorkloadPolicyConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IWorkloadPolicyConfig);

                /** WorkloadPolicyConfig allowNetAdmin. */
                public allowNetAdmin?: (boolean|null);

                /** WorkloadPolicyConfig autopilotCompatibilityAuditingEnabled. */
                public autopilotCompatibilityAuditingEnabled?: (boolean|null);

                /**
                 * Creates a new WorkloadPolicyConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns WorkloadPolicyConfig instance
                 */
                public static create(properties?: google.container.v1.IWorkloadPolicyConfig): google.container.v1.WorkloadPolicyConfig;

                /**
                 * Encodes the specified WorkloadPolicyConfig message. Does not implicitly {@link google.container.v1.WorkloadPolicyConfig.verify|verify} messages.
                 * @param message WorkloadPolicyConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IWorkloadPolicyConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified WorkloadPolicyConfig message, length delimited. Does not implicitly {@link google.container.v1.WorkloadPolicyConfig.verify|verify} messages.
                 * @param message WorkloadPolicyConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1.IWorkloadPolicyConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a WorkloadPolicyConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns WorkloadPolicyConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.WorkloadPolicyConfig;

                /**
                 * Decodes a WorkloadPolicyConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns WorkloadPolicyConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.WorkloadPolicyConfig;

                /**
                 * Verifies a WorkloadPolicyConfig message.
                 * @param message Plain 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 WorkloadPolicyConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns WorkloadPolicyConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.WorkloadPolicyConfig;

                /**
                 * Creates a plain object from a WorkloadPolicyConfig message. Also converts values to other types if specified.
                 * @param message WorkloadPolicyConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1.WorkloadPolicyConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this WorkloadPolicyConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for WorkloadPolicyConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a LoggingConfig. */
            interface ILoggingConfig {

                /** LoggingConfig componentConfig */
                componentConfig?: (google.container.v1.ILoggingComponentConfig|null);
            }

            /** Represents a LoggingConfig. */
            class LoggingConfig implements ILoggingConfig {

                /**
                 * Constructs a new LoggingConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.ILoggingConfig);

                /** LoggingConfig componentConfig. */
                public componentConfig?: (google.container.v1.ILoggingComponentConfig|null);

                /**
                 * Creates a new LoggingConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns LoggingConfig instance
                 */
                public static create(properties?: google.container.v1.ILoggingConfig): google.container.v1.LoggingConfig;

                /**
                 * Encodes the specified LoggingConfig message. Does not implicitly {@link google.container.v1.LoggingConfig.verify|verify} messages.
                 * @param message LoggingConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.ILoggingConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified LoggingConfig message, length delimited. Does not implicitly {@link google.container.v1.LoggingConfig.verify|verify} messages.
                 * @param message LoggingConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1.ILoggingConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a LoggingConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns LoggingConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.LoggingConfig;

                /**
                 * Decodes a LoggingConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns LoggingConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.LoggingConfig;

                /**
                 * Verifies a LoggingConfig message.
                 * @param message Plain 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 LoggingConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns LoggingConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.LoggingConfig;

                /**
                 * Creates a plain object from a LoggingConfig message. Also converts values to other types if specified.
                 * @param message LoggingConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1.LoggingConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this LoggingConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for LoggingConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a LoggingComponentConfig. */
            interface ILoggingComponentConfig {

                /** LoggingComponentConfig enableComponents */
                enableComponents?: (google.container.v1.LoggingComponentConfig.Component[]|null);
            }

            /** Represents a LoggingComponentConfig. */
            class LoggingComponentConfig implements ILoggingComponentConfig {

                /**
                 * Constructs a new LoggingComponentConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.ILoggingComponentConfig);

                /** LoggingComponentConfig enableComponents. */
                public enableComponents: google.container.v1.LoggingComponentConfig.Component[];

                /**
                 * Creates a new LoggingComponentConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns LoggingComponentConfig instance
                 */
                public static create(properties?: google.container.v1.ILoggingComponentConfig): google.container.v1.LoggingComponentConfig;

                /**
                 * Encodes the specified LoggingComponentConfig message. Does not implicitly {@link google.container.v1.LoggingComponentConfig.verify|verify} messages.
                 * @param message LoggingComponentConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.ILoggingComponentConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified LoggingComponentConfig message, length delimited. Does not implicitly {@link google.container.v1.LoggingComponentConfig.verify|verify} messages.
                 * @param message LoggingComponentConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1.ILoggingComponentConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a LoggingComponentConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns LoggingComponentConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.LoggingComponentConfig;

                /**
                 * Decodes a LoggingComponentConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns LoggingComponentConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.LoggingComponentConfig;

                /**
                 * Verifies a LoggingComponentConfig message.
                 * @param message Plain 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 LoggingComponentConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns LoggingComponentConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.LoggingComponentConfig;

                /**
                 * Creates a plain object from a LoggingComponentConfig message. Also converts values to other types if specified.
                 * @param message LoggingComponentConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1.LoggingComponentConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this LoggingComponentConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for LoggingComponentConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace LoggingComponentConfig {

                /** Component enum. */
                enum Component {
                    COMPONENT_UNSPECIFIED = 0,
                    SYSTEM_COMPONENTS = 1,
                    WORKLOADS = 2,
                    APISERVER = 3,
                    SCHEDULER = 4,
                    CONTROLLER_MANAGER = 5,
                    KCP_SSHD = 7,
                    KCP_CONNECTION = 8,
                    KCP_HPA = 9
                }
            }

            /** Properties of a RayClusterLoggingConfig. */
            interface IRayClusterLoggingConfig {

                /** RayClusterLoggingConfig enabled */
                enabled?: (boolean|null);
            }

            /** Represents a RayClusterLoggingConfig. */
            class RayClusterLoggingConfig implements IRayClusterLoggingConfig {

                /**
                 * Constructs a new RayClusterLoggingConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IRayClusterLoggingConfig);

                /** RayClusterLoggingConfig enabled. */
                public enabled: boolean;

                /**
                 * Creates a new RayClusterLoggingConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns RayClusterLoggingConfig instance
                 */
                public static create(properties?: google.container.v1.IRayClusterLoggingConfig): google.container.v1.RayClusterLoggingConfig;

                /**
                 * Encodes the specified RayClusterLoggingConfig message. Does not implicitly {@link google.container.v1.RayClusterLoggingConfig.verify|verify} messages.
                 * @param message RayClusterLoggingConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IRayClusterLoggingConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified RayClusterLoggingConfig message, length delimited. Does not implicitly {@link google.container.v1.RayClusterLoggingConfig.verify|verify} messages.
                 * @param message RayClusterLoggingConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1.IRayClusterLoggingConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a RayClusterLoggingConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns RayClusterLoggingConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.RayClusterLoggingConfig;

                /**
                 * Decodes a RayClusterLoggingConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns RayClusterLoggingConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.RayClusterLoggingConfig;

                /**
                 * Verifies a RayClusterLoggingConfig message.
                 * @param message Plain 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 RayClusterLoggingConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns RayClusterLoggingConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.RayClusterLoggingConfig;

                /**
                 * Creates a plain object from a RayClusterLoggingConfig message. Also converts values to other types if specified.
                 * @param message RayClusterLoggingConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1.RayClusterLoggingConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this RayClusterLoggingConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for RayClusterLoggingConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a MonitoringConfig. */
            interface IMonitoringConfig {

                /** MonitoringConfig componentConfig */
                componentConfig?: (google.container.v1.IMonitoringComponentConfig|null);

                /** MonitoringConfig managedPrometheusConfig */
                managedPrometheusConfig?: (google.container.v1.IManagedPrometheusConfig|null);

                /** MonitoringConfig advancedDatapathObservabilityConfig */
                advancedDatapathObservabilityConfig?: (google.container.v1.IAdvancedDatapathObservabilityConfig|null);
            }

            /** Represents a MonitoringConfig. */
            class MonitoringConfig implements IMonitoringConfig {

                /**
                 * Constructs a new MonitoringConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IMonitoringConfig);

                /** MonitoringConfig componentConfig. */
                public componentConfig?: (google.container.v1.IMonitoringComponentConfig|null);

                /** MonitoringConfig managedPrometheusConfig. */
                public managedPrometheusConfig?: (google.container.v1.IManagedPrometheusConfig|null);

                /** MonitoringConfig advancedDatapathObservabilityConfig. */
                public advancedDatapathObservabilityConfig?: (google.container.v1.IAdvancedDatapathObservabilityConfig|null);

                /**
                 * Creates a new MonitoringConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns MonitoringConfig instance
                 */
                public static create(properties?: google.container.v1.IMonitoringConfig): google.container.v1.MonitoringConfig;

                /**
                 * Encodes the specified MonitoringConfig message. Does not implicitly {@link google.container.v1.MonitoringConfig.verify|verify} messages.
                 * @param message MonitoringConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IMonitoringConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified MonitoringConfig message, length delimited. Does not implicitly {@link google.container.v1.MonitoringConfig.verify|verify} messages.
                 * @param message MonitoringConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1.IMonitoringConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a MonitoringConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns MonitoringConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.MonitoringConfig;

                /**
                 * Decodes a MonitoringConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns MonitoringConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.MonitoringConfig;

                /**
                 * Verifies a MonitoringConfig message.
                 * @param message Plain 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 MonitoringConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns MonitoringConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.MonitoringConfig;

                /**
                 * Creates a plain object from a MonitoringConfig message. Also converts values to other types if specified.
                 * @param message MonitoringConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1.MonitoringConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this MonitoringConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for MonitoringConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of an AdvancedDatapathObservabilityConfig. */
            interface IAdvancedDatapathObservabilityConfig {

                /** AdvancedDatapathObservabilityConfig enableMetrics */
                enableMetrics?: (boolean|null);

                /** AdvancedDatapathObservabilityConfig relayMode */
                relayMode?: (google.container.v1.AdvancedDatapathObservabilityConfig.RelayMode|keyof typeof google.container.v1.AdvancedDatapathObservabilityConfig.RelayMode|null);

                /** AdvancedDatapathObservabilityConfig enableRelay */
                enableRelay?: (boolean|null);
            }

            /** Represents an AdvancedDatapathObservabilityConfig. */
            class AdvancedDatapathObservabilityConfig implements IAdvancedDatapathObservabilityConfig {

                /**
                 * Constructs a new AdvancedDatapathObservabilityConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IAdvancedDatapathObservabilityConfig);

                /** AdvancedDatapathObservabilityConfig enableMetrics. */
                public enableMetrics: boolean;

                /** AdvancedDatapathObservabilityConfig relayMode. */
                public relayMode: (google.container.v1.AdvancedDatapathObservabilityConfig.RelayMode|keyof typeof google.container.v1.AdvancedDatapathObservabilityConfig.RelayMode);

                /** AdvancedDatapathObservabilityConfig enableRelay. */
                public enableRelay?: (boolean|null);

                /**
                 * Creates a new AdvancedDatapathObservabilityConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns AdvancedDatapathObservabilityConfig instance
                 */
                public static create(properties?: google.container.v1.IAdvancedDatapathObservabilityConfig): google.container.v1.AdvancedDatapathObservabilityConfig;

                /**
                 * Encodes the specified AdvancedDatapathObservabilityConfig message. Does not implicitly {@link google.container.v1.AdvancedDatapathObservabilityConfig.verify|verify} messages.
                 * @param message AdvancedDatapathObservabilityConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IAdvancedDatapathObservabilityConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified AdvancedDatapathObservabilityConfig message, length delimited. Does not implicitly {@link google.container.v1.AdvancedDatapathObservabilityConfig.verify|verify} messages.
                 * @param message AdvancedDatapathObservabilityConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1.IAdvancedDatapathObservabilityConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes an AdvancedDatapathObservabilityConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns AdvancedDatapathObservabilityConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.AdvancedDatapathObservabilityConfig;

                /**
                 * Decodes an AdvancedDatapathObservabilityConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns AdvancedDatapathObservabilityConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.AdvancedDatapathObservabilityConfig;

                /**
                 * Verifies an AdvancedDatapathObservabilityConfig message.
                 * @param message Plain 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 AdvancedDatapathObservabilityConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns AdvancedDatapathObservabilityConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.AdvancedDatapathObservabilityConfig;

                /**
                 * Creates a plain object from an AdvancedDatapathObservabilityConfig message. Also converts values to other types if specified.
                 * @param message AdvancedDatapathObservabilityConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1.AdvancedDatapathObservabilityConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this AdvancedDatapathObservabilityConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for AdvancedDatapathObservabilityConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace AdvancedDatapathObservabilityConfig {

                /** RelayMode enum. */
                enum RelayMode {
                    RELAY_MODE_UNSPECIFIED = 0,
                    DISABLED = 1,
                    INTERNAL_VPC_LB = 3,
                    EXTERNAL_LB = 4
                }
            }

            /** Properties of a RayClusterMonitoringConfig. */
            interface IRayClusterMonitoringConfig {

                /** RayClusterMonitoringConfig enabled */
                enabled?: (boolean|null);
            }

            /** Represents a RayClusterMonitoringConfig. */
            class RayClusterMonitoringConfig implements IRayClusterMonitoringConfig {

                /**
                 * Constructs a new RayClusterMonitoringConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IRayClusterMonitoringConfig);

                /** RayClusterMonitoringConfig enabled. */
                public enabled: boolean;

                /**
                 * Creates a new RayClusterMonitoringConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns RayClusterMonitoringConfig instance
                 */
                public static create(properties?: google.container.v1.IRayClusterMonitoringConfig): google.container.v1.RayClusterMonitoringConfig;

                /**
                 * Encodes the specified RayClusterMonitoringConfig message. Does not implicitly {@link google.container.v1.RayClusterMonitoringConfig.verify|verify} messages.
                 * @param message RayClusterMonitoringConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IRayClusterMonitoringConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified RayClusterMonitoringConfig message, length delimited. Does not implicitly {@link google.container.v1.RayClusterMonitoringConfig.verify|verify} messages.
                 * @param message RayClusterMonitoringConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1.IRayClusterMonitoringConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a RayClusterMonitoringConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns RayClusterMonitoringConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.RayClusterMonitoringConfig;

                /**
                 * Decodes a RayClusterMonitoringConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns RayClusterMonitoringConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.RayClusterMonitoringConfig;

                /**
                 * Verifies a RayClusterMonitoringConfig message.
                 * @param message Plain 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 RayClusterMonitoringConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns RayClusterMonitoringConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.RayClusterMonitoringConfig;

                /**
                 * Creates a plain object from a RayClusterMonitoringConfig message. Also converts values to other types if specified.
                 * @param message RayClusterMonitoringConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1.RayClusterMonitoringConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this RayClusterMonitoringConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for RayClusterMonitoringConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a NodePoolLoggingConfig. */
            interface INodePoolLoggingConfig {

                /** NodePoolLoggingConfig variantConfig */
                variantConfig?: (google.container.v1.ILoggingVariantConfig|null);
            }

            /** Represents a NodePoolLoggingConfig. */
            class NodePoolLoggingConfig implements INodePoolLoggingConfig {

                /**
                 * Constructs a new NodePoolLoggingConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.INodePoolLoggingConfig);

                /** NodePoolLoggingConfig variantConfig. */
                public variantConfig?: (google.container.v1.ILoggingVariantConfig|null);

                /**
                 * Creates a new NodePoolLoggingConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns NodePoolLoggingConfig instance
                 */
                public static create(properties?: google.container.v1.INodePoolLoggingConfig): google.container.v1.NodePoolLoggingConfig;

                /**
                 * Encodes the specified NodePoolLoggingConfig message. Does not implicitly {@link google.container.v1.NodePoolLoggingConfig.verify|verify} messages.
                 * @param message NodePoolLoggingConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.INodePoolLoggingConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified NodePoolLoggingConfig message, length delimited. Does not implicitly {@link google.container.v1.NodePoolLoggingConfig.verify|verify} messages.
                 * @param message NodePoolLoggingConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1.INodePoolLoggingConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a NodePoolLoggingConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns NodePoolLoggingConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.NodePoolLoggingConfig;

                /**
                 * Decodes a NodePoolLoggingConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns NodePoolLoggingConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.NodePoolLoggingConfig;

                /**
                 * Verifies a NodePoolLoggingConfig message.
                 * @param message Plain 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 NodePoolLoggingConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns NodePoolLoggingConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.NodePoolLoggingConfig;

                /**
                 * Creates a plain object from a NodePoolLoggingConfig message. Also converts values to other types if specified.
                 * @param message NodePoolLoggingConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1.NodePoolLoggingConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this NodePoolLoggingConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for NodePoolLoggingConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a LoggingVariantConfig. */
            interface ILoggingVariantConfig {

                /** LoggingVariantConfig variant */
                variant?: (google.container.v1.LoggingVariantConfig.Variant|keyof typeof google.container.v1.LoggingVariantConfig.Variant|null);
            }

            /** Represents a LoggingVariantConfig. */
            class LoggingVariantConfig implements ILoggingVariantConfig {

                /**
                 * Constructs a new LoggingVariantConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.ILoggingVariantConfig);

                /** LoggingVariantConfig variant. */
                public variant: (google.container.v1.LoggingVariantConfig.Variant|keyof typeof google.container.v1.LoggingVariantConfig.Variant);

                /**
                 * Creates a new LoggingVariantConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns LoggingVariantConfig instance
                 */
                public static create(properties?: google.container.v1.ILoggingVariantConfig): google.container.v1.LoggingVariantConfig;

                /**
                 * Encodes the specified LoggingVariantConfig message. Does not implicitly {@link google.container.v1.LoggingVariantConfig.verify|verify} messages.
                 * @param message LoggingVariantConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.ILoggingVariantConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified LoggingVariantConfig message, length delimited. Does not implicitly {@link google.container.v1.LoggingVariantConfig.verify|verify} messages.
                 * @param message LoggingVariantConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1.ILoggingVariantConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a LoggingVariantConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns LoggingVariantConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.LoggingVariantConfig;

                /**
                 * Decodes a LoggingVariantConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns LoggingVariantConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.LoggingVariantConfig;

                /**
                 * Verifies a LoggingVariantConfig message.
                 * @param message Plain 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 LoggingVariantConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns LoggingVariantConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.LoggingVariantConfig;

                /**
                 * Creates a plain object from a LoggingVariantConfig message. Also converts values to other types if specified.
                 * @param message LoggingVariantConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1.LoggingVariantConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this LoggingVariantConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for LoggingVariantConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace LoggingVariantConfig {

                /** Variant enum. */
                enum Variant {
                    VARIANT_UNSPECIFIED = 0,
                    DEFAULT = 1,
                    MAX_THROUGHPUT = 2
                }
            }

            /** Properties of a MonitoringComponentConfig. */
            interface IMonitoringComponentConfig {

                /** MonitoringComponentConfig enableComponents */
                enableComponents?: (google.container.v1.MonitoringComponentConfig.Component[]|null);
            }

            /** Represents a MonitoringComponentConfig. */
            class MonitoringComponentConfig implements IMonitoringComponentConfig {

                /**
                 * Constructs a new MonitoringComponentConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IMonitoringComponentConfig);

                /** MonitoringComponentConfig enableComponents. */
                public enableComponents: google.container.v1.MonitoringComponentConfig.Component[];

                /**
                 * Creates a new MonitoringComponentConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns MonitoringComponentConfig instance
                 */
                public static create(properties?: google.container.v1.IMonitoringComponentConfig): google.container.v1.MonitoringComponentConfig;

                /**
                 * Encodes the specified MonitoringComponentConfig message. Does not implicitly {@link google.container.v1.MonitoringComponentConfig.verify|verify} messages.
                 * @param message MonitoringComponentConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IMonitoringComponentConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified MonitoringComponentConfig message, length delimited. Does not implicitly {@link google.container.v1.MonitoringComponentConfig.verify|verify} messages.
                 * @param message MonitoringComponentConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1.IMonitoringComponentConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a MonitoringComponentConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns MonitoringComponentConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.MonitoringComponentConfig;

                /**
                 * Decodes a MonitoringComponentConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns MonitoringComponentConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.MonitoringComponentConfig;

                /**
                 * Verifies a MonitoringComponentConfig message.
                 * @param message Plain 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 MonitoringComponentConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns MonitoringComponentConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.MonitoringComponentConfig;

                /**
                 * Creates a plain object from a MonitoringComponentConfig message. Also converts values to other types if specified.
                 * @param message MonitoringComponentConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1.MonitoringComponentConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this MonitoringComponentConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for MonitoringComponentConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace MonitoringComponentConfig {

                /** Component enum. */
                enum Component {
                    COMPONENT_UNSPECIFIED = 0,
                    SYSTEM_COMPONENTS = 1,
                    APISERVER = 3,
                    SCHEDULER = 4,
                    CONTROLLER_MANAGER = 5,
                    STORAGE = 7,
                    HPA = 8,
                    POD = 9,
                    DAEMONSET = 10,
                    DEPLOYMENT = 11,
                    STATEFULSET = 12,
                    CADVISOR = 13,
                    KUBELET = 14,
                    DCGM = 15,
                    JOBSET = 16
                }
            }

            /** DatapathProvider enum. */
            enum DatapathProvider {
                DATAPATH_PROVIDER_UNSPECIFIED = 0,
                LEGACY_DATAPATH = 1,
                ADVANCED_DATAPATH = 2
            }

            /** NodePoolUpdateStrategy enum. */
            enum NodePoolUpdateStrategy {
                NODE_POOL_UPDATE_STRATEGY_UNSPECIFIED = 0,
                BLUE_GREEN = 2,
                SURGE = 3,
                SHORT_LIVED = 5
            }

            /** Properties of a ManagedPrometheusConfig. */
            interface IManagedPrometheusConfig {

                /** ManagedPrometheusConfig enabled */
                enabled?: (boolean|null);

                /** ManagedPrometheusConfig autoMonitoringConfig */
                autoMonitoringConfig?: (google.container.v1.IAutoMonitoringConfig|null);
            }

            /** Represents a ManagedPrometheusConfig. */
            class ManagedPrometheusConfig implements IManagedPrometheusConfig {

                /**
                 * Constructs a new ManagedPrometheusConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IManagedPrometheusConfig);

                /** ManagedPrometheusConfig enabled. */
                public enabled: boolean;

                /** ManagedPrometheusConfig autoMonitoringConfig. */
                public autoMonitoringConfig?: (google.container.v1.IAutoMonitoringConfig|null);

                /**
                 * Creates a new ManagedPrometheusConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ManagedPrometheusConfig instance
                 */
                public static create(properties?: google.container.v1.IManagedPrometheusConfig): google.container.v1.ManagedPrometheusConfig;

                /**
                 * Encodes the specified ManagedPrometheusConfig message. Does not implicitly {@link google.container.v1.ManagedPrometheusConfig.verify|verify} messages.
                 * @param message ManagedPrometheusConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IManagedPrometheusConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified ManagedPrometheusConfig message, length delimited. Does not implicitly {@link google.container.v1.ManagedPrometheusConfig.verify|verify} messages.
                 * @param message ManagedPrometheusConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1.IManagedPrometheusConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a ManagedPrometheusConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ManagedPrometheusConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.ManagedPrometheusConfig;

                /**
                 * Decodes a ManagedPrometheusConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ManagedPrometheusConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.ManagedPrometheusConfig;

                /**
                 * Verifies a ManagedPrometheusConfig message.
                 * @param message Plain 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 ManagedPrometheusConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ManagedPrometheusConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.ManagedPrometheusConfig;

                /**
                 * Creates a plain object from a ManagedPrometheusConfig message. Also converts values to other types if specified.
                 * @param message ManagedPrometheusConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1.ManagedPrometheusConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ManagedPrometheusConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for ManagedPrometheusConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of an AutoMonitoringConfig. */
            interface IAutoMonitoringConfig {

                /** AutoMonitoringConfig scope */
                scope?: (google.container.v1.AutoMonitoringConfig.Scope|keyof typeof google.container.v1.AutoMonitoringConfig.Scope|null);
            }

            /** Represents an AutoMonitoringConfig. */
            class AutoMonitoringConfig implements IAutoMonitoringConfig {

                /**
                 * Constructs a new AutoMonitoringConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IAutoMonitoringConfig);

                /** AutoMonitoringConfig scope. */
                public scope: (google.container.v1.AutoMonitoringConfig.Scope|keyof typeof google.container.v1.AutoMonitoringConfig.Scope);

                /**
                 * Creates a new AutoMonitoringConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns AutoMonitoringConfig instance
                 */
                public static create(properties?: google.container.v1.IAutoMonitoringConfig): google.container.v1.AutoMonitoringConfig;

                /**
                 * Encodes the specified AutoMonitoringConfig message. Does not implicitly {@link google.container.v1.AutoMonitoringConfig.verify|verify} messages.
                 * @param message AutoMonitoringConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IAutoMonitoringConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified AutoMonitoringConfig message, length delimited. Does not implicitly {@link google.container.v1.AutoMonitoringConfig.verify|verify} messages.
                 * @param message AutoMonitoringConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1.IAutoMonitoringConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes an AutoMonitoringConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns AutoMonitoringConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.AutoMonitoringConfig;

                /**
                 * Decodes an AutoMonitoringConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns AutoMonitoringConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.AutoMonitoringConfig;

                /**
                 * Verifies an AutoMonitoringConfig message.
                 * @param message Plain 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 AutoMonitoringConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns AutoMonitoringConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.AutoMonitoringConfig;

                /**
                 * Creates a plain object from an AutoMonitoringConfig message. Also converts values to other types if specified.
                 * @param message AutoMonitoringConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1.AutoMonitoringConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this AutoMonitoringConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for AutoMonitoringConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace AutoMonitoringConfig {

                /** Scope enum. */
                enum Scope {
                    SCOPE_UNSPECIFIED = 0,
                    ALL = 1,
                    NONE = 2
                }
            }

            /** Properties of a PodAutoscaling. */
            interface IPodAutoscaling {

                /** PodAutoscaling hpaProfile */
                hpaProfile?: (google.container.v1.PodAutoscaling.HPAProfile|keyof typeof google.container.v1.PodAutoscaling.HPAProfile|null);
            }

            /** Represents a PodAutoscaling. */
            class PodAutoscaling implements IPodAutoscaling {

                /**
                 * Constructs a new PodAutoscaling.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IPodAutoscaling);

                /** PodAutoscaling hpaProfile. */
                public hpaProfile?: (google.container.v1.PodAutoscaling.HPAProfile|keyof typeof google.container.v1.PodAutoscaling.HPAProfile|null);

                /**
                 * Creates a new PodAutoscaling instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns PodAutoscaling instance
                 */
                public static create(properties?: google.container.v1.IPodAutoscaling): google.container.v1.PodAutoscaling;

                /**
                 * Encodes the specified PodAutoscaling message. Does not implicitly {@link google.container.v1.PodAutoscaling.verify|verify} messages.
                 * @param message PodAutoscaling message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IPodAutoscaling, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified PodAutoscaling message, length delimited. Does not implicitly {@link google.container.v1.PodAutoscaling.verify|verify} messages.
                 * @param message PodAutoscaling message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1.IPodAutoscaling, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a PodAutoscaling message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns PodAutoscaling
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.PodAutoscaling;

                /**
                 * Decodes a PodAutoscaling message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns PodAutoscaling
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.PodAutoscaling;

                /**
                 * Verifies a PodAutoscaling message.
                 * @param message Plain 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 PodAutoscaling message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns PodAutoscaling
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.PodAutoscaling;

                /**
                 * Creates a plain object from a PodAutoscaling message. Also converts values to other types if specified.
                 * @param message PodAutoscaling
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1.PodAutoscaling, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this PodAutoscaling to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for PodAutoscaling
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace PodAutoscaling {

                /** HPAProfile enum. */
                enum HPAProfile {
                    HPA_PROFILE_UNSPECIFIED = 0,
                    NONE = 1,
                    PERFORMANCE = 2
                }
            }

            /** Properties of a Fleet. */
            interface IFleet {

                /** Fleet project */
                project?: (string|null);

                /** Fleet membership */
                membership?: (string|null);

                /** Fleet preRegistered */
                preRegistered?: (boolean|null);

                /** Fleet membershipType */
                membershipType?: (google.container.v1.Fleet.MembershipType|keyof typeof google.container.v1.Fleet.MembershipType|null);
            }

            /** Represents a Fleet. */
            class Fleet implements IFleet {

                /**
                 * Constructs a new Fleet.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IFleet);

                /** Fleet project. */
                public project: string;

                /** Fleet membership. */
                public membership: string;

                /** Fleet preRegistered. */
                public preRegistered: boolean;

                /** Fleet membershipType. */
                public membershipType: (google.container.v1.Fleet.MembershipType|keyof typeof google.container.v1.Fleet.MembershipType);

                /**
                 * Creates a new Fleet instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns Fleet instance
                 */
                public static create(properties?: google.container.v1.IFleet): google.container.v1.Fleet;

                /**
                 * Encodes the specified Fleet message. Does not implicitly {@link google.container.v1.Fleet.verify|verify} messages.
                 * @param message Fleet message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IFleet, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified Fleet message, length delimited. Does not implicitly {@link google.container.v1.Fleet.verify|verify} messages.
                 * @param message Fleet message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1.IFleet, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a Fleet message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns Fleet
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.Fleet;

                /**
                 * Decodes a Fleet message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns Fleet
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.Fleet;

                /**
                 * Verifies a Fleet message.
                 * @param message Plain 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 Fleet message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns Fleet
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.Fleet;

                /**
                 * Creates a plain object from a Fleet message. Also converts values to other types if specified.
                 * @param message Fleet
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1.Fleet, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this Fleet to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for Fleet
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace Fleet {

                /** MembershipType enum. */
                enum MembershipType {
                    MEMBERSHIP_TYPE_UNSPECIFIED = 0,
                    LIGHTWEIGHT = 1
                }
            }

            /** StackType enum. */
            enum StackType {
                STACK_TYPE_UNSPECIFIED = 0,
                IPV4 = 1,
                IPV4_IPV6 = 2
            }

            /** Properties of a ControlPlaneEndpointsConfig. */
            interface IControlPlaneEndpointsConfig {

                /** ControlPlaneEndpointsConfig dnsEndpointConfig */
                dnsEndpointConfig?: (google.container.v1.ControlPlaneEndpointsConfig.IDNSEndpointConfig|null);

                /** ControlPlaneEndpointsConfig ipEndpointsConfig */
                ipEndpointsConfig?: (google.container.v1.ControlPlaneEndpointsConfig.IIPEndpointsConfig|null);
            }

            /** Represents a ControlPlaneEndpointsConfig. */
            class ControlPlaneEndpointsConfig implements IControlPlaneEndpointsConfig {

                /**
                 * Constructs a new ControlPlaneEndpointsConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IControlPlaneEndpointsConfig);

                /** ControlPlaneEndpointsConfig dnsEndpointConfig. */
                public dnsEndpointConfig?: (google.container.v1.ControlPlaneEndpointsConfig.IDNSEndpointConfig|null);

                /** ControlPlaneEndpointsConfig ipEndpointsConfig. */
                public ipEndpointsConfig?: (google.container.v1.ControlPlaneEndpointsConfig.IIPEndpointsConfig|null);

                /**
                 * Creates a new ControlPlaneEndpointsConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ControlPlaneEndpointsConfig instance
                 */
                public static create(properties?: google.container.v1.IControlPlaneEndpointsConfig): google.container.v1.ControlPlaneEndpointsConfig;

                /**
                 * Encodes the specified ControlPlaneEndpointsConfig message. Does not implicitly {@link google.container.v1.ControlPlaneEndpointsConfig.verify|verify} messages.
                 * @param message ControlPlaneEndpointsConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IControlPlaneEndpointsConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified ControlPlaneEndpointsConfig message, length delimited. Does not implicitly {@link google.container.v1.ControlPlaneEndpointsConfig.verify|verify} messages.
                 * @param message ControlPlaneEndpointsConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1.IControlPlaneEndpointsConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a ControlPlaneEndpointsConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ControlPlaneEndpointsConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.ControlPlaneEndpointsConfig;

                /**
                 * Decodes a ControlPlaneEndpointsConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ControlPlaneEndpointsConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.ControlPlaneEndpointsConfig;

                /**
                 * Verifies a ControlPlaneEndpointsConfig message.
                 * @param message Plain 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 ControlPlaneEndpointsConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ControlPlaneEndpointsConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.ControlPlaneEndpointsConfig;

                /**
                 * Creates a plain object from a ControlPlaneEndpointsConfig message. Also converts values to other types if specified.
                 * @param message ControlPlaneEndpointsConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1.ControlPlaneEndpointsConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ControlPlaneEndpointsConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for ControlPlaneEndpointsConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace ControlPlaneEndpointsConfig {

                /** Properties of a DNSEndpointConfig. */
                interface IDNSEndpointConfig {

                    /** DNSEndpointConfig endpoint */
                    endpoint?: (string|null);

                    /** DNSEndpointConfig allowExternalTraffic */
                    allowExternalTraffic?: (boolean|null);

                    /** DNSEndpointConfig enableK8sTokensViaDns */
                    enableK8sTokensViaDns?: (boolean|null);

                    /** DNSEndpointConfig enableK8sCertsViaDns */
                    enableK8sCertsViaDns?: (boolean|null);
                }

                /** Represents a DNSEndpointConfig. */
                class DNSEndpointConfig implements IDNSEndpointConfig {

                    /**
                     * Constructs a new DNSEndpointConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.container.v1.ControlPlaneEndpointsConfig.IDNSEndpointConfig);

                    /** DNSEndpointConfig endpoint. */
                    public endpoint: string;

                    /** DNSEndpointConfig allowExternalTraffic. */
                    public allowExternalTraffic?: (boolean|null);

                    /** DNSEndpointConfig enableK8sTokensViaDns. */
                    public enableK8sTokensViaDns?: (boolean|null);

                    /** DNSEndpointConfig enableK8sCertsViaDns. */
                    public enableK8sCertsViaDns?: (boolean|null);

                    /**
                     * Creates a new DNSEndpointConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DNSEndpointConfig instance
                     */
                    public static create(properties?: google.container.v1.ControlPlaneEndpointsConfig.IDNSEndpointConfig): google.container.v1.ControlPlaneEndpointsConfig.DNSEndpointConfig;

                    /**
                     * Encodes the specified DNSEndpointConfig message. Does not implicitly {@link google.container.v1.ControlPlaneEndpointsConfig.DNSEndpointConfig.verify|verify} messages.
                     * @param message DNSEndpointConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.container.v1.ControlPlaneEndpointsConfig.IDNSEndpointConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DNSEndpointConfig message, length delimited. Does not implicitly {@link google.container.v1.ControlPlaneEndpointsConfig.DNSEndpointConfig.verify|verify} messages.
                     * @param message DNSEndpointConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.container.v1.ControlPlaneEndpointsConfig.IDNSEndpointConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DNSEndpointConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DNSEndpointConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.ControlPlaneEndpointsConfig.DNSEndpointConfig;

                    /**
                     * Decodes a DNSEndpointConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DNSEndpointConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.ControlPlaneEndpointsConfig.DNSEndpointConfig;

                    /**
                     * Verifies a DNSEndpointConfig message.
                     * @param message Plain 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 DNSEndpointConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DNSEndpointConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.container.v1.ControlPlaneEndpointsConfig.DNSEndpointConfig;

                    /**
                     * Creates a plain object from a DNSEndpointConfig message. Also converts values to other types if specified.
                     * @param message DNSEndpointConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.container.v1.ControlPlaneEndpointsConfig.DNSEndpointConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DNSEndpointConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DNSEndpointConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a IPEndpointsConfig. */
                interface IIPEndpointsConfig {

                    /** IPEndpointsConfig enabled */
                    enabled?: (boolean|null);

                    /** IPEndpointsConfig enablePublicEndpoint */
                    enablePublicEndpoint?: (boolean|null);

                    /** IPEndpointsConfig globalAccess */
                    globalAccess?: (boolean|null);

                    /** IPEndpointsConfig authorizedNetworksConfig */
                    authorizedNetworksConfig?: (google.container.v1.IMasterAuthorizedNetworksConfig|null);

                    /** IPEndpointsConfig publicEndpoint */
                    publicEndpoint?: (string|null);

                    /** IPEndpointsConfig privateEndpoint */
                    privateEndpoint?: (string|null);

                    /** IPEndpointsConfig privateEndpointSubnetwork */
                    privateEndpointSubnetwork?: (string|null);
                }

                /** Represents a IPEndpointsConfig. */
                class IPEndpointsConfig implements IIPEndpointsConfig {

                    /**
                     * Constructs a new IPEndpointsConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.container.v1.ControlPlaneEndpointsConfig.IIPEndpointsConfig);

                    /** IPEndpointsConfig enabled. */
                    public enabled?: (boolean|null);

                    /** IPEndpointsConfig enablePublicEndpoint. */
                    public enablePublicEndpoint?: (boolean|null);

                    /** IPEndpointsConfig globalAccess. */
                    public globalAccess?: (boolean|null);

                    /** IPEndpointsConfig authorizedNetworksConfig. */
                    public authorizedNetworksConfig?: (google.container.v1.IMasterAuthorizedNetworksConfig|null);

                    /** IPEndpointsConfig publicEndpoint. */
                    public publicEndpoint: string;

                    /** IPEndpointsConfig privateEndpoint. */
                    public privateEndpoint: string;

                    /** IPEndpointsConfig privateEndpointSubnetwork. */
                    public privateEndpointSubnetwork: string;

                    /**
                     * Creates a new IPEndpointsConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns IPEndpointsConfig instance
                     */
                    public static create(properties?: google.container.v1.ControlPlaneEndpointsConfig.IIPEndpointsConfig): google.container.v1.ControlPlaneEndpointsConfig.IPEndpointsConfig;

                    /**
                     * Encodes the specified IPEndpointsConfig message. Does not implicitly {@link google.container.v1.ControlPlaneEndpointsConfig.IPEndpointsConfig.verify|verify} messages.
                     * @param message IPEndpointsConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.container.v1.ControlPlaneEndpointsConfig.IIPEndpointsConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified IPEndpointsConfig message, length delimited. Does not implicitly {@link google.container.v1.ControlPlaneEndpointsConfig.IPEndpointsConfig.verify|verify} messages.
                     * @param message IPEndpointsConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.container.v1.ControlPlaneEndpointsConfig.IIPEndpointsConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a IPEndpointsConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns IPEndpointsConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.ControlPlaneEndpointsConfig.IPEndpointsConfig;

                    /**
                     * Decodes a IPEndpointsConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns IPEndpointsConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.ControlPlaneEndpointsConfig.IPEndpointsConfig;

                    /**
                     * Verifies a IPEndpointsConfig message.
                     * @param message Plain 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 IPEndpointsConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns IPEndpointsConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.container.v1.ControlPlaneEndpointsConfig.IPEndpointsConfig;

                    /**
                     * Creates a plain object from a IPEndpointsConfig message. Also converts values to other types if specified.
                     * @param message IPEndpointsConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.container.v1.ControlPlaneEndpointsConfig.IPEndpointsConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this IPEndpointsConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for IPEndpointsConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }
            }

            /** IPv6AccessType enum. */
            enum IPv6AccessType {
                IPV6_ACCESS_TYPE_UNSPECIFIED = 0,
                INTERNAL = 1,
                EXTERNAL = 2
            }

            /** Properties of a LocalNvmeSsdBlockConfig. */
            interface ILocalNvmeSsdBlockConfig {

                /** LocalNvmeSsdBlockConfig localSsdCount */
                localSsdCount?: (number|null);
            }

            /** Represents a LocalNvmeSsdBlockConfig. */
            class LocalNvmeSsdBlockConfig implements ILocalNvmeSsdBlockConfig {

                /**
                 * Constructs a new LocalNvmeSsdBlockConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.ILocalNvmeSsdBlockConfig);

                /** LocalNvmeSsdBlockConfig localSsdCount. */
                public localSsdCount: number;

                /**
                 * Creates a new LocalNvmeSsdBlockConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns LocalNvmeSsdBlockConfig instance
                 */
                public static create(properties?: google.container.v1.ILocalNvmeSsdBlockConfig): google.container.v1.LocalNvmeSsdBlockConfig;

                /**
                 * Encodes the specified LocalNvmeSsdBlockConfig message. Does not implicitly {@link google.container.v1.LocalNvmeSsdBlockConfig.verify|verify} messages.
                 * @param message LocalNvmeSsdBlockConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.ILocalNvmeSsdBlockConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified LocalNvmeSsdBlockConfig message, length delimited. Does not implicitly {@link google.container.v1.LocalNvmeSsdBlockConfig.verify|verify} messages.
                 * @param message LocalNvmeSsdBlockConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1.ILocalNvmeSsdBlockConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a LocalNvmeSsdBlockConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns LocalNvmeSsdBlockConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.LocalNvmeSsdBlockConfig;

                /**
                 * Decodes a LocalNvmeSsdBlockConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns LocalNvmeSsdBlockConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.LocalNvmeSsdBlockConfig;

                /**
                 * Verifies a LocalNvmeSsdBlockConfig message.
                 * @param message Plain 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 LocalNvmeSsdBlockConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns LocalNvmeSsdBlockConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.LocalNvmeSsdBlockConfig;

                /**
                 * Creates a plain object from a LocalNvmeSsdBlockConfig message. Also converts values to other types if specified.
                 * @param message LocalNvmeSsdBlockConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1.LocalNvmeSsdBlockConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this LocalNvmeSsdBlockConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for LocalNvmeSsdBlockConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of an EphemeralStorageLocalSsdConfig. */
            interface IEphemeralStorageLocalSsdConfig {

                /** EphemeralStorageLocalSsdConfig localSsdCount */
                localSsdCount?: (number|null);

                /** EphemeralStorageLocalSsdConfig dataCacheCount */
                dataCacheCount?: (number|null);
            }

            /** Represents an EphemeralStorageLocalSsdConfig. */
            class EphemeralStorageLocalSsdConfig implements IEphemeralStorageLocalSsdConfig {

                /**
                 * Constructs a new EphemeralStorageLocalSsdConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IEphemeralStorageLocalSsdConfig);

                /** EphemeralStorageLocalSsdConfig localSsdCount. */
                public localSsdCount: number;

                /** EphemeralStorageLocalSsdConfig dataCacheCount. */
                public dataCacheCount: number;

                /**
                 * Creates a new EphemeralStorageLocalSsdConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns EphemeralStorageLocalSsdConfig instance
                 */
                public static create(properties?: google.container.v1.IEphemeralStorageLocalSsdConfig): google.container.v1.EphemeralStorageLocalSsdConfig;

                /**
                 * Encodes the specified EphemeralStorageLocalSsdConfig message. Does not implicitly {@link google.container.v1.EphemeralStorageLocalSsdConfig.verify|verify} messages.
                 * @param message EphemeralStorageLocalSsdConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IEphemeralStorageLocalSsdConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified EphemeralStorageLocalSsdConfig message, length delimited. Does not implicitly {@link google.container.v1.EphemeralStorageLocalSsdConfig.verify|verify} messages.
                 * @param message EphemeralStorageLocalSsdConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1.IEphemeralStorageLocalSsdConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes an EphemeralStorageLocalSsdConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns EphemeralStorageLocalSsdConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.EphemeralStorageLocalSsdConfig;

                /**
                 * Decodes an EphemeralStorageLocalSsdConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns EphemeralStorageLocalSsdConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.EphemeralStorageLocalSsdConfig;

                /**
                 * Verifies an EphemeralStorageLocalSsdConfig message.
                 * @param message Plain 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 EphemeralStorageLocalSsdConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns EphemeralStorageLocalSsdConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.EphemeralStorageLocalSsdConfig;

                /**
                 * Creates a plain object from an EphemeralStorageLocalSsdConfig message. Also converts values to other types if specified.
                 * @param message EphemeralStorageLocalSsdConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1.EphemeralStorageLocalSsdConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this EphemeralStorageLocalSsdConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for EphemeralStorageLocalSsdConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a ResourceManagerTags. */
            interface IResourceManagerTags {

                /** ResourceManagerTags tags */
                tags?: ({ [k: string]: string }|null);
            }

            /** Represents a ResourceManagerTags. */
            class ResourceManagerTags implements IResourceManagerTags {

                /**
                 * Constructs a new ResourceManagerTags.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IResourceManagerTags);

                /** ResourceManagerTags tags. */
                public tags: { [k: string]: string };

                /**
                 * Creates a new ResourceManagerTags instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ResourceManagerTags instance
                 */
                public static create(properties?: google.container.v1.IResourceManagerTags): google.container.v1.ResourceManagerTags;

                /**
                 * Encodes the specified ResourceManagerTags message. Does not implicitly {@link google.container.v1.ResourceManagerTags.verify|verify} messages.
                 * @param message ResourceManagerTags message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IResourceManagerTags, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified ResourceManagerTags message, length delimited. Does not implicitly {@link google.container.v1.ResourceManagerTags.verify|verify} messages.
                 * @param message ResourceManagerTags message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1.IResourceManagerTags, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a ResourceManagerTags message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ResourceManagerTags
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.ResourceManagerTags;

                /**
                 * Decodes a ResourceManagerTags message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ResourceManagerTags
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.ResourceManagerTags;

                /**
                 * Verifies a ResourceManagerTags message.
                 * @param message Plain 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 ResourceManagerTags message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ResourceManagerTags
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.ResourceManagerTags;

                /**
                 * Creates a plain object from a ResourceManagerTags message. Also converts values to other types if specified.
                 * @param message ResourceManagerTags
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1.ResourceManagerTags, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ResourceManagerTags to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for ResourceManagerTags
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of an EnterpriseConfig. */
            interface IEnterpriseConfig {

                /** EnterpriseConfig clusterTier */
                clusterTier?: (google.container.v1.EnterpriseConfig.ClusterTier|keyof typeof google.container.v1.EnterpriseConfig.ClusterTier|null);

                /** EnterpriseConfig desiredTier */
                desiredTier?: (google.container.v1.EnterpriseConfig.ClusterTier|keyof typeof google.container.v1.EnterpriseConfig.ClusterTier|null);
            }

            /** Represents an EnterpriseConfig. */
            class EnterpriseConfig implements IEnterpriseConfig {

                /**
                 * Constructs a new EnterpriseConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IEnterpriseConfig);

                /** EnterpriseConfig clusterTier. */
                public clusterTier: (google.container.v1.EnterpriseConfig.ClusterTier|keyof typeof google.container.v1.EnterpriseConfig.ClusterTier);

                /** EnterpriseConfig desiredTier. */
                public desiredTier: (google.container.v1.EnterpriseConfig.ClusterTier|keyof typeof google.container.v1.EnterpriseConfig.ClusterTier);

                /**
                 * Creates a new EnterpriseConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns EnterpriseConfig instance
                 */
                public static create(properties?: google.container.v1.IEnterpriseConfig): google.container.v1.EnterpriseConfig;

                /**
                 * Encodes the specified EnterpriseConfig message. Does not implicitly {@link google.container.v1.EnterpriseConfig.verify|verify} messages.
                 * @param message EnterpriseConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IEnterpriseConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified EnterpriseConfig message, length delimited. Does not implicitly {@link google.container.v1.EnterpriseConfig.verify|verify} messages.
                 * @param message EnterpriseConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1.IEnterpriseConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes an EnterpriseConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns EnterpriseConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.EnterpriseConfig;

                /**
                 * Decodes an EnterpriseConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns EnterpriseConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.EnterpriseConfig;

                /**
                 * Verifies an EnterpriseConfig message.
                 * @param message Plain 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 EnterpriseConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns EnterpriseConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.EnterpriseConfig;

                /**
                 * Creates a plain object from an EnterpriseConfig message. Also converts values to other types if specified.
                 * @param message EnterpriseConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1.EnterpriseConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this EnterpriseConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for EnterpriseConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace EnterpriseConfig {

                /** ClusterTier enum. */
                enum ClusterTier {
                    CLUSTER_TIER_UNSPECIFIED = 0,
                    STANDARD = 1,
                    ENTERPRISE = 2
                }
            }

            /** Properties of a SecretManagerConfig. */
            interface ISecretManagerConfig {

                /** SecretManagerConfig enabled */
                enabled?: (boolean|null);

                /** SecretManagerConfig rotationConfig */
                rotationConfig?: (google.container.v1.SecretManagerConfig.IRotationConfig|null);
            }

            /** Represents a SecretManagerConfig. */
            class SecretManagerConfig implements ISecretManagerConfig {

                /**
                 * Constructs a new SecretManagerConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.ISecretManagerConfig);

                /** SecretManagerConfig enabled. */
                public enabled?: (boolean|null);

                /** SecretManagerConfig rotationConfig. */
                public rotationConfig?: (google.container.v1.SecretManagerConfig.IRotationConfig|null);

                /**
                 * Creates a new SecretManagerConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns SecretManagerConfig instance
                 */
                public static create(properties?: google.container.v1.ISecretManagerConfig): google.container.v1.SecretManagerConfig;

                /**
                 * Encodes the specified SecretManagerConfig message. Does not implicitly {@link google.container.v1.SecretManagerConfig.verify|verify} messages.
                 * @param message SecretManagerConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.ISecretManagerConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified SecretManagerConfig message, length delimited. Does not implicitly {@link google.container.v1.SecretManagerConfig.verify|verify} messages.
                 * @param message SecretManagerConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1.ISecretManagerConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a SecretManagerConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns SecretManagerConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.SecretManagerConfig;

                /**
                 * Decodes a SecretManagerConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns SecretManagerConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.SecretManagerConfig;

                /**
                 * Verifies a SecretManagerConfig message.
                 * @param message Plain 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 SecretManagerConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns SecretManagerConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.SecretManagerConfig;

                /**
                 * Creates a plain object from a SecretManagerConfig message. Also converts values to other types if specified.
                 * @param message SecretManagerConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1.SecretManagerConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this SecretManagerConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for SecretManagerConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace SecretManagerConfig {

                /** Properties of a RotationConfig. */
                interface IRotationConfig {

                    /** RotationConfig enabled */
                    enabled?: (boolean|null);

                    /** RotationConfig rotationInterval */
                    rotationInterval?: (google.protobuf.IDuration|null);
                }

                /** Represents a RotationConfig. */
                class RotationConfig implements IRotationConfig {

                    /**
                     * Constructs a new RotationConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.container.v1.SecretManagerConfig.IRotationConfig);

                    /** RotationConfig enabled. */
                    public enabled?: (boolean|null);

                    /** RotationConfig rotationInterval. */
                    public rotationInterval?: (google.protobuf.IDuration|null);

                    /**
                     * Creates a new RotationConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RotationConfig instance
                     */
                    public static create(properties?: google.container.v1.SecretManagerConfig.IRotationConfig): google.container.v1.SecretManagerConfig.RotationConfig;

                    /**
                     * Encodes the specified RotationConfig message. Does not implicitly {@link google.container.v1.SecretManagerConfig.RotationConfig.verify|verify} messages.
                     * @param message RotationConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.container.v1.SecretManagerConfig.IRotationConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RotationConfig message, length delimited. Does not implicitly {@link google.container.v1.SecretManagerConfig.RotationConfig.verify|verify} messages.
                     * @param message RotationConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.container.v1.SecretManagerConfig.IRotationConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RotationConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RotationConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.SecretManagerConfig.RotationConfig;

                    /**
                     * Decodes a RotationConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RotationConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.SecretManagerConfig.RotationConfig;

                    /**
                     * Verifies a RotationConfig message.
                     * @param message Plain 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 RotationConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RotationConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.container.v1.SecretManagerConfig.RotationConfig;

                    /**
                     * Creates a plain object from a RotationConfig message. Also converts values to other types if specified.
                     * @param message RotationConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.container.v1.SecretManagerConfig.RotationConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RotationConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RotationConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }
            }

            /** Properties of a BootDisk. */
            interface IBootDisk {

                /** BootDisk diskType */
                diskType?: (string|null);

                /** BootDisk sizeGb */
                sizeGb?: (number|Long|string|null);

                /** BootDisk provisionedIops */
                provisionedIops?: (number|Long|string|null);

                /** BootDisk provisionedThroughput */
                provisionedThroughput?: (number|Long|string|null);
            }

            /** Represents a BootDisk. */
            class BootDisk implements IBootDisk {

                /**
                 * Constructs a new BootDisk.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IBootDisk);

                /** BootDisk diskType. */
                public diskType: string;

                /** BootDisk sizeGb. */
                public sizeGb: (number|Long|string);

                /** BootDisk provisionedIops. */
                public provisionedIops: (number|Long|string);

                /** BootDisk provisionedThroughput. */
                public provisionedThroughput: (number|Long|string);

                /**
                 * Creates a new BootDisk instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns BootDisk instance
                 */
                public static create(properties?: google.container.v1.IBootDisk): google.container.v1.BootDisk;

                /**
                 * Encodes the specified BootDisk message. Does not implicitly {@link google.container.v1.BootDisk.verify|verify} messages.
                 * @param message BootDisk message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IBootDisk, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified BootDisk message, length delimited. Does not implicitly {@link google.container.v1.BootDisk.verify|verify} messages.
                 * @param message BootDisk message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1.IBootDisk, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a BootDisk message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns BootDisk
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.BootDisk;

                /**
                 * Decodes a BootDisk message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns BootDisk
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.BootDisk;

                /**
                 * Verifies a BootDisk message.
                 * @param message Plain 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 BootDisk message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns BootDisk
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.BootDisk;

                /**
                 * Creates a plain object from a BootDisk message. Also converts values to other types if specified.
                 * @param message BootDisk
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1.BootDisk, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this BootDisk to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for BootDisk
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a SecondaryBootDisk. */
            interface ISecondaryBootDisk {

                /** SecondaryBootDisk mode */
                mode?: (google.container.v1.SecondaryBootDisk.Mode|keyof typeof google.container.v1.SecondaryBootDisk.Mode|null);

                /** SecondaryBootDisk diskImage */
                diskImage?: (string|null);
            }

            /** Represents a SecondaryBootDisk. */
            class SecondaryBootDisk implements ISecondaryBootDisk {

                /**
                 * Constructs a new SecondaryBootDisk.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.ISecondaryBootDisk);

                /** SecondaryBootDisk mode. */
                public mode: (google.container.v1.SecondaryBootDisk.Mode|keyof typeof google.container.v1.SecondaryBootDisk.Mode);

                /** SecondaryBootDisk diskImage. */
                public diskImage: string;

                /**
                 * Creates a new SecondaryBootDisk instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns SecondaryBootDisk instance
                 */
                public static create(properties?: google.container.v1.ISecondaryBootDisk): google.container.v1.SecondaryBootDisk;

                /**
                 * Encodes the specified SecondaryBootDisk message. Does not implicitly {@link google.container.v1.SecondaryBootDisk.verify|verify} messages.
                 * @param message SecondaryBootDisk message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.ISecondaryBootDisk, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified SecondaryBootDisk message, length delimited. Does not implicitly {@link google.container.v1.SecondaryBootDisk.verify|verify} messages.
                 * @param message SecondaryBootDisk message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1.ISecondaryBootDisk, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a SecondaryBootDisk message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns SecondaryBootDisk
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.SecondaryBootDisk;

                /**
                 * Decodes a SecondaryBootDisk message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns SecondaryBootDisk
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.SecondaryBootDisk;

                /**
                 * Verifies a SecondaryBootDisk message.
                 * @param message Plain 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 SecondaryBootDisk message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns SecondaryBootDisk
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.SecondaryBootDisk;

                /**
                 * Creates a plain object from a SecondaryBootDisk message. Also converts values to other types if specified.
                 * @param message SecondaryBootDisk
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1.SecondaryBootDisk, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this SecondaryBootDisk to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for SecondaryBootDisk
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace SecondaryBootDisk {

                /** Mode enum. */
                enum Mode {
                    MODE_UNSPECIFIED = 0,
                    CONTAINER_IMAGE_CACHE = 1
                }
            }

            /** InTransitEncryptionConfig enum. */
            enum InTransitEncryptionConfig {
                IN_TRANSIT_ENCRYPTION_CONFIG_UNSPECIFIED = 0,
                IN_TRANSIT_ENCRYPTION_DISABLED = 1,
                IN_TRANSIT_ENCRYPTION_INTER_NODE_TRANSPARENT = 2
            }

            /** Properties of a SecondaryBootDiskUpdateStrategy. */
            interface ISecondaryBootDiskUpdateStrategy {
            }

            /** Represents a SecondaryBootDiskUpdateStrategy. */
            class SecondaryBootDiskUpdateStrategy implements ISecondaryBootDiskUpdateStrategy {

                /**
                 * Constructs a new SecondaryBootDiskUpdateStrategy.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.ISecondaryBootDiskUpdateStrategy);

                /**
                 * Creates a new SecondaryBootDiskUpdateStrategy instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns SecondaryBootDiskUpdateStrategy instance
                 */
                public static create(properties?: google.container.v1.ISecondaryBootDiskUpdateStrategy): google.container.v1.SecondaryBootDiskUpdateStrategy;

                /**
                 * Encodes the specified SecondaryBootDiskUpdateStrategy message. Does not implicitly {@link google.container.v1.SecondaryBootDiskUpdateStrategy.verify|verify} messages.
                 * @param message SecondaryBootDiskUpdateStrategy message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.ISecondaryBootDiskUpdateStrategy, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified SecondaryBootDiskUpdateStrategy message, length delimited. Does not implicitly {@link google.container.v1.SecondaryBootDiskUpdateStrategy.verify|verify} messages.
                 * @param message SecondaryBootDiskUpdateStrategy message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1.ISecondaryBootDiskUpdateStrategy, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a SecondaryBootDiskUpdateStrategy message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns SecondaryBootDiskUpdateStrategy
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.SecondaryBootDiskUpdateStrategy;

                /**
                 * Decodes a SecondaryBootDiskUpdateStrategy message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns SecondaryBootDiskUpdateStrategy
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.SecondaryBootDiskUpdateStrategy;

                /**
                 * Verifies a SecondaryBootDiskUpdateStrategy message.
                 * @param message Plain 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 SecondaryBootDiskUpdateStrategy message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns SecondaryBootDiskUpdateStrategy
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.SecondaryBootDiskUpdateStrategy;

                /**
                 * Creates a plain object from a SecondaryBootDiskUpdateStrategy message. Also converts values to other types if specified.
                 * @param message SecondaryBootDiskUpdateStrategy
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1.SecondaryBootDiskUpdateStrategy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this SecondaryBootDiskUpdateStrategy to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for SecondaryBootDiskUpdateStrategy
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a FetchClusterUpgradeInfoRequest. */
            interface IFetchClusterUpgradeInfoRequest {

                /** FetchClusterUpgradeInfoRequest name */
                name?: (string|null);

                /** FetchClusterUpgradeInfoRequest version */
                version?: (string|null);
            }

            /** Represents a FetchClusterUpgradeInfoRequest. */
            class FetchClusterUpgradeInfoRequest implements IFetchClusterUpgradeInfoRequest {

                /**
                 * Constructs a new FetchClusterUpgradeInfoRequest.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IFetchClusterUpgradeInfoRequest);

                /** FetchClusterUpgradeInfoRequest name. */
                public name: string;

                /** FetchClusterUpgradeInfoRequest version. */
                public version: string;

                /**
                 * Creates a new FetchClusterUpgradeInfoRequest instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns FetchClusterUpgradeInfoRequest instance
                 */
                public static create(properties?: google.container.v1.IFetchClusterUpgradeInfoRequest): google.container.v1.FetchClusterUpgradeInfoRequest;

                /**
                 * Encodes the specified FetchClusterUpgradeInfoRequest message. Does not implicitly {@link google.container.v1.FetchClusterUpgradeInfoRequest.verify|verify} messages.
                 * @param message FetchClusterUpgradeInfoRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IFetchClusterUpgradeInfoRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified FetchClusterUpgradeInfoRequest message, length delimited. Does not implicitly {@link google.container.v1.FetchClusterUpgradeInfoRequest.verify|verify} messages.
                 * @param message FetchClusterUpgradeInfoRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1.IFetchClusterUpgradeInfoRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a FetchClusterUpgradeInfoRequest message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns FetchClusterUpgradeInfoRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.FetchClusterUpgradeInfoRequest;

                /**
                 * Decodes a FetchClusterUpgradeInfoRequest message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns FetchClusterUpgradeInfoRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.FetchClusterUpgradeInfoRequest;

                /**
                 * Verifies a FetchClusterUpgradeInfoRequest message.
                 * @param message Plain 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 FetchClusterUpgradeInfoRequest message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns FetchClusterUpgradeInfoRequest
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.FetchClusterUpgradeInfoRequest;

                /**
                 * Creates a plain object from a FetchClusterUpgradeInfoRequest message. Also converts values to other types if specified.
                 * @param message FetchClusterUpgradeInfoRequest
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1.FetchClusterUpgradeInfoRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this FetchClusterUpgradeInfoRequest to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for FetchClusterUpgradeInfoRequest
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a ClusterUpgradeInfo. */
            interface IClusterUpgradeInfo {

                /** ClusterUpgradeInfo minorTargetVersion */
                minorTargetVersion?: (string|null);

                /** ClusterUpgradeInfo patchTargetVersion */
                patchTargetVersion?: (string|null);

                /** ClusterUpgradeInfo autoUpgradeStatus */
                autoUpgradeStatus?: (google.container.v1.ClusterUpgradeInfo.AutoUpgradeStatus[]|null);

                /** ClusterUpgradeInfo pausedReason */
                pausedReason?: (google.container.v1.ClusterUpgradeInfo.AutoUpgradePausedReason[]|null);

                /** ClusterUpgradeInfo upgradeDetails */
                upgradeDetails?: (google.container.v1.IUpgradeDetails[]|null);

                /** ClusterUpgradeInfo endOfStandardSupportTimestamp */
                endOfStandardSupportTimestamp?: (string|null);

                /** ClusterUpgradeInfo endOfExtendedSupportTimestamp */
                endOfExtendedSupportTimestamp?: (string|null);
            }

            /** Represents a ClusterUpgradeInfo. */
            class ClusterUpgradeInfo implements IClusterUpgradeInfo {

                /**
                 * Constructs a new ClusterUpgradeInfo.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IClusterUpgradeInfo);

                /** ClusterUpgradeInfo minorTargetVersion. */
                public minorTargetVersion?: (string|null);

                /** ClusterUpgradeInfo patchTargetVersion. */
                public patchTargetVersion?: (string|null);

                /** ClusterUpgradeInfo autoUpgradeStatus. */
                public autoUpgradeStatus: google.container.v1.ClusterUpgradeInfo.AutoUpgradeStatus[];

                /** ClusterUpgradeInfo pausedReason. */
                public pausedReason: google.container.v1.ClusterUpgradeInfo.AutoUpgradePausedReason[];

                /** ClusterUpgradeInfo upgradeDetails. */
                public upgradeDetails: google.container.v1.IUpgradeDetails[];

                /** ClusterUpgradeInfo endOfStandardSupportTimestamp. */
                public endOfStandardSupportTimestamp?: (string|null);

                /** ClusterUpgradeInfo endOfExtendedSupportTimestamp. */
                public endOfExtendedSupportTimestamp?: (string|null);

                /**
                 * Creates a new ClusterUpgradeInfo instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ClusterUpgradeInfo instance
                 */
                public static create(properties?: google.container.v1.IClusterUpgradeInfo): google.container.v1.ClusterUpgradeInfo;

                /**
                 * Encodes the specified ClusterUpgradeInfo message. Does not implicitly {@link google.container.v1.ClusterUpgradeInfo.verify|verify} messages.
                 * @param message ClusterUpgradeInfo message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IClusterUpgradeInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified ClusterUpgradeInfo message, length delimited. Does not implicitly {@link google.container.v1.ClusterUpgradeInfo.verify|verify} messages.
                 * @param message ClusterUpgradeInfo message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1.IClusterUpgradeInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a ClusterUpgradeInfo message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ClusterUpgradeInfo
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.ClusterUpgradeInfo;

                /**
                 * Decodes a ClusterUpgradeInfo message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ClusterUpgradeInfo
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.ClusterUpgradeInfo;

                /**
                 * Verifies a ClusterUpgradeInfo message.
                 * @param message Plain 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 ClusterUpgradeInfo message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ClusterUpgradeInfo
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.ClusterUpgradeInfo;

                /**
                 * Creates a plain object from a ClusterUpgradeInfo message. Also converts values to other types if specified.
                 * @param message ClusterUpgradeInfo
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1.ClusterUpgradeInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ClusterUpgradeInfo to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for ClusterUpgradeInfo
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace ClusterUpgradeInfo {

                /** AutoUpgradeStatus enum. */
                enum AutoUpgradeStatus {
                    UNKNOWN = 0,
                    ACTIVE = 1,
                    MINOR_UPGRADE_PAUSED = 4,
                    UPGRADE_PAUSED = 5
                }

                /** AutoUpgradePausedReason enum. */
                enum AutoUpgradePausedReason {
                    AUTO_UPGRADE_PAUSED_REASON_UNSPECIFIED = 0,
                    MAINTENANCE_WINDOW = 1,
                    MAINTENANCE_EXCLUSION_NO_UPGRADES = 5,
                    MAINTENANCE_EXCLUSION_NO_MINOR_UPGRADES = 6,
                    CLUSTER_DISRUPTION_BUDGET = 4,
                    CLUSTER_DISRUPTION_BUDGET_MINOR_UPGRADE = 7,
                    SYSTEM_CONFIG = 8
                }
            }

            /** Properties of an UpgradeDetails. */
            interface IUpgradeDetails {

                /** UpgradeDetails state */
                state?: (google.container.v1.UpgradeDetails.State|keyof typeof google.container.v1.UpgradeDetails.State|null);

                /** UpgradeDetails startTime */
                startTime?: (google.protobuf.ITimestamp|null);

                /** UpgradeDetails endTime */
                endTime?: (google.protobuf.ITimestamp|null);

                /** UpgradeDetails initialVersion */
                initialVersion?: (string|null);

                /** UpgradeDetails targetVersion */
                targetVersion?: (string|null);

                /** UpgradeDetails startType */
                startType?: (google.container.v1.UpgradeDetails.StartType|keyof typeof google.container.v1.UpgradeDetails.StartType|null);
            }

            /** Represents an UpgradeDetails. */
            class UpgradeDetails implements IUpgradeDetails {

                /**
                 * Constructs a new UpgradeDetails.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IUpgradeDetails);

                /** UpgradeDetails state. */
                public state: (google.container.v1.UpgradeDetails.State|keyof typeof google.container.v1.UpgradeDetails.State);

                /** UpgradeDetails startTime. */
                public startTime?: (google.protobuf.ITimestamp|null);

                /** UpgradeDetails endTime. */
                public endTime?: (google.protobuf.ITimestamp|null);

                /** UpgradeDetails initialVersion. */
                public initialVersion: string;

                /** UpgradeDetails targetVersion. */
                public targetVersion: string;

                /** UpgradeDetails startType. */
                public startType: (google.container.v1.UpgradeDetails.StartType|keyof typeof google.container.v1.UpgradeDetails.StartType);

                /**
                 * Creates a new UpgradeDetails instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns UpgradeDetails instance
                 */
                public static create(properties?: google.container.v1.IUpgradeDetails): google.container.v1.UpgradeDetails;

                /**
                 * Encodes the specified UpgradeDetails message. Does not implicitly {@link google.container.v1.UpgradeDetails.verify|verify} messages.
                 * @param message UpgradeDetails message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IUpgradeDetails, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified UpgradeDetails message, length delimited. Does not implicitly {@link google.container.v1.UpgradeDetails.verify|verify} messages.
                 * @param message UpgradeDetails message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1.IUpgradeDetails, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes an UpgradeDetails message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns UpgradeDetails
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.UpgradeDetails;

                /**
                 * Decodes an UpgradeDetails message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns UpgradeDetails
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.UpgradeDetails;

                /**
                 * Verifies an UpgradeDetails message.
                 * @param message Plain 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 UpgradeDetails message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns UpgradeDetails
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.UpgradeDetails;

                /**
                 * Creates a plain object from an UpgradeDetails message. Also converts values to other types if specified.
                 * @param message UpgradeDetails
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1.UpgradeDetails, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this UpgradeDetails to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for UpgradeDetails
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace UpgradeDetails {

                /** State enum. */
                enum State {
                    UNKNOWN = 0,
                    FAILED = 1,
                    SUCCEEDED = 2,
                    CANCELED = 3,
                    RUNNING = 4
                }

                /** StartType enum. */
                enum StartType {
                    START_TYPE_UNSPECIFIED = 0,
                    AUTOMATIC = 1,
                    MANUAL = 2
                }
            }

            /** Properties of a FetchNodePoolUpgradeInfoRequest. */
            interface IFetchNodePoolUpgradeInfoRequest {

                /** FetchNodePoolUpgradeInfoRequest name */
                name?: (string|null);

                /** FetchNodePoolUpgradeInfoRequest version */
                version?: (string|null);
            }

            /** Represents a FetchNodePoolUpgradeInfoRequest. */
            class FetchNodePoolUpgradeInfoRequest implements IFetchNodePoolUpgradeInfoRequest {

                /**
                 * Constructs a new FetchNodePoolUpgradeInfoRequest.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IFetchNodePoolUpgradeInfoRequest);

                /** FetchNodePoolUpgradeInfoRequest name. */
                public name: string;

                /** FetchNodePoolUpgradeInfoRequest version. */
                public version: string;

                /**
                 * Creates a new FetchNodePoolUpgradeInfoRequest instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns FetchNodePoolUpgradeInfoRequest instance
                 */
                public static create(properties?: google.container.v1.IFetchNodePoolUpgradeInfoRequest): google.container.v1.FetchNodePoolUpgradeInfoRequest;

                /**
                 * Encodes the specified FetchNodePoolUpgradeInfoRequest message. Does not implicitly {@link google.container.v1.FetchNodePoolUpgradeInfoRequest.verify|verify} messages.
                 * @param message FetchNodePoolUpgradeInfoRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IFetchNodePoolUpgradeInfoRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified FetchNodePoolUpgradeInfoRequest message, length delimited. Does not implicitly {@link google.container.v1.FetchNodePoolUpgradeInfoRequest.verify|verify} messages.
                 * @param message FetchNodePoolUpgradeInfoRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1.IFetchNodePoolUpgradeInfoRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a FetchNodePoolUpgradeInfoRequest message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns FetchNodePoolUpgradeInfoRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.FetchNodePoolUpgradeInfoRequest;

                /**
                 * Decodes a FetchNodePoolUpgradeInfoRequest message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns FetchNodePoolUpgradeInfoRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.FetchNodePoolUpgradeInfoRequest;

                /**
                 * Verifies a FetchNodePoolUpgradeInfoRequest message.
                 * @param message Plain 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 FetchNodePoolUpgradeInfoRequest message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns FetchNodePoolUpgradeInfoRequest
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.FetchNodePoolUpgradeInfoRequest;

                /**
                 * Creates a plain object from a FetchNodePoolUpgradeInfoRequest message. Also converts values to other types if specified.
                 * @param message FetchNodePoolUpgradeInfoRequest
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1.FetchNodePoolUpgradeInfoRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this FetchNodePoolUpgradeInfoRequest to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for FetchNodePoolUpgradeInfoRequest
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a NodePoolUpgradeInfo. */
            interface INodePoolUpgradeInfo {

                /** NodePoolUpgradeInfo minorTargetVersion */
                minorTargetVersion?: (string|null);

                /** NodePoolUpgradeInfo patchTargetVersion */
                patchTargetVersion?: (string|null);

                /** NodePoolUpgradeInfo autoUpgradeStatus */
                autoUpgradeStatus?: (google.container.v1.NodePoolUpgradeInfo.AutoUpgradeStatus[]|null);

                /** NodePoolUpgradeInfo pausedReason */
                pausedReason?: (google.container.v1.NodePoolUpgradeInfo.AutoUpgradePausedReason[]|null);

                /** NodePoolUpgradeInfo upgradeDetails */
                upgradeDetails?: (google.container.v1.IUpgradeDetails[]|null);

                /** NodePoolUpgradeInfo endOfStandardSupportTimestamp */
                endOfStandardSupportTimestamp?: (string|null);

                /** NodePoolUpgradeInfo endOfExtendedSupportTimestamp */
                endOfExtendedSupportTimestamp?: (string|null);
            }

            /** Represents a NodePoolUpgradeInfo. */
            class NodePoolUpgradeInfo implements INodePoolUpgradeInfo {

                /**
                 * Constructs a new NodePoolUpgradeInfo.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.INodePoolUpgradeInfo);

                /** NodePoolUpgradeInfo minorTargetVersion. */
                public minorTargetVersion?: (string|null);

                /** NodePoolUpgradeInfo patchTargetVersion. */
                public patchTargetVersion?: (string|null);

                /** NodePoolUpgradeInfo autoUpgradeStatus. */
                public autoUpgradeStatus: google.container.v1.NodePoolUpgradeInfo.AutoUpgradeStatus[];

                /** NodePoolUpgradeInfo pausedReason. */
                public pausedReason: google.container.v1.NodePoolUpgradeInfo.AutoUpgradePausedReason[];

                /** NodePoolUpgradeInfo upgradeDetails. */
                public upgradeDetails: google.container.v1.IUpgradeDetails[];

                /** NodePoolUpgradeInfo endOfStandardSupportTimestamp. */
                public endOfStandardSupportTimestamp?: (string|null);

                /** NodePoolUpgradeInfo endOfExtendedSupportTimestamp. */
                public endOfExtendedSupportTimestamp?: (string|null);

                /**
                 * Creates a new NodePoolUpgradeInfo instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns NodePoolUpgradeInfo instance
                 */
                public static create(properties?: google.container.v1.INodePoolUpgradeInfo): google.container.v1.NodePoolUpgradeInfo;

                /**
                 * Encodes the specified NodePoolUpgradeInfo message. Does not implicitly {@link google.container.v1.NodePoolUpgradeInfo.verify|verify} messages.
                 * @param message NodePoolUpgradeInfo message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.INodePoolUpgradeInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified NodePoolUpgradeInfo message, length delimited. Does not implicitly {@link google.container.v1.NodePoolUpgradeInfo.verify|verify} messages.
                 * @param message NodePoolUpgradeInfo message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1.INodePoolUpgradeInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a NodePoolUpgradeInfo message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns NodePoolUpgradeInfo
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.NodePoolUpgradeInfo;

                /**
                 * Decodes a NodePoolUpgradeInfo message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns NodePoolUpgradeInfo
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.NodePoolUpgradeInfo;

                /**
                 * Verifies a NodePoolUpgradeInfo message.
                 * @param message Plain 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 NodePoolUpgradeInfo message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns NodePoolUpgradeInfo
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.NodePoolUpgradeInfo;

                /**
                 * Creates a plain object from a NodePoolUpgradeInfo message. Also converts values to other types if specified.
                 * @param message NodePoolUpgradeInfo
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1.NodePoolUpgradeInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this NodePoolUpgradeInfo to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for NodePoolUpgradeInfo
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace NodePoolUpgradeInfo {

                /** AutoUpgradeStatus enum. */
                enum AutoUpgradeStatus {
                    UNKNOWN = 0,
                    ACTIVE = 1,
                    MINOR_UPGRADE_PAUSED = 2,
                    UPGRADE_PAUSED = 3
                }

                /** AutoUpgradePausedReason enum. */
                enum AutoUpgradePausedReason {
                    AUTO_UPGRADE_PAUSED_REASON_UNSPECIFIED = 0,
                    MAINTENANCE_WINDOW = 1,
                    MAINTENANCE_EXCLUSION_NO_UPGRADES = 2,
                    MAINTENANCE_EXCLUSION_NO_MINOR_UPGRADES = 3,
                    SYSTEM_CONFIG = 4
                }
            }

            /** Properties of a ScheduleUpgradeConfig. */
            interface IScheduleUpgradeConfig {

                /** ScheduleUpgradeConfig enabled */
                enabled?: (boolean|null);
            }

            /** Represents a ScheduleUpgradeConfig. */
            class ScheduleUpgradeConfig implements IScheduleUpgradeConfig {

                /**
                 * Constructs a new ScheduleUpgradeConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IScheduleUpgradeConfig);

                /** ScheduleUpgradeConfig enabled. */
                public enabled: boolean;

                /**
                 * Creates a new ScheduleUpgradeConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ScheduleUpgradeConfig instance
                 */
                public static create(properties?: google.container.v1.IScheduleUpgradeConfig): google.container.v1.ScheduleUpgradeConfig;

                /**
                 * Encodes the specified ScheduleUpgradeConfig message. Does not implicitly {@link google.container.v1.ScheduleUpgradeConfig.verify|verify} messages.
                 * @param message ScheduleUpgradeConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IScheduleUpgradeConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified ScheduleUpgradeConfig message, length delimited. Does not implicitly {@link google.container.v1.ScheduleUpgradeConfig.verify|verify} messages.
                 * @param message ScheduleUpgradeConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1.IScheduleUpgradeConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a ScheduleUpgradeConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ScheduleUpgradeConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.ScheduleUpgradeConfig;

                /**
                 * Decodes a ScheduleUpgradeConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ScheduleUpgradeConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.ScheduleUpgradeConfig;

                /**
                 * Verifies a ScheduleUpgradeConfig message.
                 * @param message Plain 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 ScheduleUpgradeConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ScheduleUpgradeConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.ScheduleUpgradeConfig;

                /**
                 * Creates a plain object from a ScheduleUpgradeConfig message. Also converts values to other types if specified.
                 * @param message ScheduleUpgradeConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1.ScheduleUpgradeConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ScheduleUpgradeConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for ScheduleUpgradeConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a GkeAutoUpgradeConfig. */
            interface IGkeAutoUpgradeConfig {

                /** GkeAutoUpgradeConfig patchMode */
                patchMode?: (google.container.v1.GkeAutoUpgradeConfig.PatchMode|keyof typeof google.container.v1.GkeAutoUpgradeConfig.PatchMode|null);
            }

            /** Represents a GkeAutoUpgradeConfig. */
            class GkeAutoUpgradeConfig implements IGkeAutoUpgradeConfig {

                /**
                 * Constructs a new GkeAutoUpgradeConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IGkeAutoUpgradeConfig);

                /** GkeAutoUpgradeConfig patchMode. */
                public patchMode: (google.container.v1.GkeAutoUpgradeConfig.PatchMode|keyof typeof google.container.v1.GkeAutoUpgradeConfig.PatchMode);

                /**
                 * Creates a new GkeAutoUpgradeConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns GkeAutoUpgradeConfig instance
                 */
                public static create(properties?: google.container.v1.IGkeAutoUpgradeConfig): google.container.v1.GkeAutoUpgradeConfig;

                /**
                 * Encodes the specified GkeAutoUpgradeConfig message. Does not implicitly {@link google.container.v1.GkeAutoUpgradeConfig.verify|verify} messages.
                 * @param message GkeAutoUpgradeConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IGkeAutoUpgradeConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified GkeAutoUpgradeConfig message, length delimited. Does not implicitly {@link google.container.v1.GkeAutoUpgradeConfig.verify|verify} messages.
                 * @param message GkeAutoUpgradeConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1.IGkeAutoUpgradeConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a GkeAutoUpgradeConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns GkeAutoUpgradeConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.GkeAutoUpgradeConfig;

                /**
                 * Decodes a GkeAutoUpgradeConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns GkeAutoUpgradeConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.GkeAutoUpgradeConfig;

                /**
                 * Verifies a GkeAutoUpgradeConfig message.
                 * @param message Plain 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 GkeAutoUpgradeConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns GkeAutoUpgradeConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.GkeAutoUpgradeConfig;

                /**
                 * Creates a plain object from a GkeAutoUpgradeConfig message. Also converts values to other types if specified.
                 * @param message GkeAutoUpgradeConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1.GkeAutoUpgradeConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this GkeAutoUpgradeConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for GkeAutoUpgradeConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace GkeAutoUpgradeConfig {

                /** PatchMode enum. */
                enum PatchMode {
                    PATCH_MODE_UNSPECIFIED = 0,
                    ACCELERATED = 1
                }
            }

            /** Properties of a NetworkTierConfig. */
            interface INetworkTierConfig {

                /** NetworkTierConfig networkTier */
                networkTier?: (google.container.v1.NetworkTierConfig.NetworkTier|keyof typeof google.container.v1.NetworkTierConfig.NetworkTier|null);
            }

            /** Represents a NetworkTierConfig. */
            class NetworkTierConfig implements INetworkTierConfig {

                /**
                 * Constructs a new NetworkTierConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.INetworkTierConfig);

                /** NetworkTierConfig networkTier. */
                public networkTier: (google.container.v1.NetworkTierConfig.NetworkTier|keyof typeof google.container.v1.NetworkTierConfig.NetworkTier);

                /**
                 * Creates a new NetworkTierConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns NetworkTierConfig instance
                 */
                public static create(properties?: google.container.v1.INetworkTierConfig): google.container.v1.NetworkTierConfig;

                /**
                 * Encodes the specified NetworkTierConfig message. Does not implicitly {@link google.container.v1.NetworkTierConfig.verify|verify} messages.
                 * @param message NetworkTierConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.INetworkTierConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified NetworkTierConfig message, length delimited. Does not implicitly {@link google.container.v1.NetworkTierConfig.verify|verify} messages.
                 * @param message NetworkTierConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1.INetworkTierConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a NetworkTierConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns NetworkTierConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.NetworkTierConfig;

                /**
                 * Decodes a NetworkTierConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns NetworkTierConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.NetworkTierConfig;

                /**
                 * Verifies a NetworkTierConfig message.
                 * @param message Plain 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 NetworkTierConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns NetworkTierConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.NetworkTierConfig;

                /**
                 * Creates a plain object from a NetworkTierConfig message. Also converts values to other types if specified.
                 * @param message NetworkTierConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1.NetworkTierConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this NetworkTierConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for NetworkTierConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace NetworkTierConfig {

                /** NetworkTier enum. */
                enum NetworkTier {
                    NETWORK_TIER_UNSPECIFIED = 0,
                    NETWORK_TIER_DEFAULT = 1,
                    NETWORK_TIER_PREMIUM = 2,
                    NETWORK_TIER_STANDARD = 3
                }
            }

            /** Properties of a SecretSyncConfig. */
            interface ISecretSyncConfig {

                /** SecretSyncConfig enabled */
                enabled?: (boolean|null);

                /** SecretSyncConfig rotationConfig */
                rotationConfig?: (google.container.v1.SecretSyncConfig.ISyncRotationConfig|null);
            }

            /** Represents a SecretSyncConfig. */
            class SecretSyncConfig implements ISecretSyncConfig {

                /**
                 * Constructs a new SecretSyncConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.ISecretSyncConfig);

                /** SecretSyncConfig enabled. */
                public enabled?: (boolean|null);

                /** SecretSyncConfig rotationConfig. */
                public rotationConfig?: (google.container.v1.SecretSyncConfig.ISyncRotationConfig|null);

                /**
                 * Creates a new SecretSyncConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns SecretSyncConfig instance
                 */
                public static create(properties?: google.container.v1.ISecretSyncConfig): google.container.v1.SecretSyncConfig;

                /**
                 * Encodes the specified SecretSyncConfig message. Does not implicitly {@link google.container.v1.SecretSyncConfig.verify|verify} messages.
                 * @param message SecretSyncConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.ISecretSyncConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified SecretSyncConfig message, length delimited. Does not implicitly {@link google.container.v1.SecretSyncConfig.verify|verify} messages.
                 * @param message SecretSyncConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1.ISecretSyncConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a SecretSyncConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns SecretSyncConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.SecretSyncConfig;

                /**
                 * Decodes a SecretSyncConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns SecretSyncConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.SecretSyncConfig;

                /**
                 * Verifies a SecretSyncConfig message.
                 * @param message Plain 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 SecretSyncConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns SecretSyncConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.SecretSyncConfig;

                /**
                 * Creates a plain object from a SecretSyncConfig message. Also converts values to other types if specified.
                 * @param message SecretSyncConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1.SecretSyncConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this SecretSyncConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for SecretSyncConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace SecretSyncConfig {

                /** Properties of a SyncRotationConfig. */
                interface ISyncRotationConfig {

                    /** SyncRotationConfig enabled */
                    enabled?: (boolean|null);

                    /** SyncRotationConfig rotationInterval */
                    rotationInterval?: (google.protobuf.IDuration|null);
                }

                /** Represents a SyncRotationConfig. */
                class SyncRotationConfig implements ISyncRotationConfig {

                    /**
                     * Constructs a new SyncRotationConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.container.v1.SecretSyncConfig.ISyncRotationConfig);

                    /** SyncRotationConfig enabled. */
                    public enabled?: (boolean|null);

                    /** SyncRotationConfig rotationInterval. */
                    public rotationInterval?: (google.protobuf.IDuration|null);

                    /**
                     * Creates a new SyncRotationConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SyncRotationConfig instance
                     */
                    public static create(properties?: google.container.v1.SecretSyncConfig.ISyncRotationConfig): google.container.v1.SecretSyncConfig.SyncRotationConfig;

                    /**
                     * Encodes the specified SyncRotationConfig message. Does not implicitly {@link google.container.v1.SecretSyncConfig.SyncRotationConfig.verify|verify} messages.
                     * @param message SyncRotationConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.container.v1.SecretSyncConfig.ISyncRotationConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SyncRotationConfig message, length delimited. Does not implicitly {@link google.container.v1.SecretSyncConfig.SyncRotationConfig.verify|verify} messages.
                     * @param message SyncRotationConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.container.v1.SecretSyncConfig.ISyncRotationConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SyncRotationConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SyncRotationConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.SecretSyncConfig.SyncRotationConfig;

                    /**
                     * Decodes a SyncRotationConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SyncRotationConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.SecretSyncConfig.SyncRotationConfig;

                    /**
                     * Verifies a SyncRotationConfig message.
                     * @param message Plain 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 SyncRotationConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SyncRotationConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.container.v1.SecretSyncConfig.SyncRotationConfig;

                    /**
                     * Creates a plain object from a SyncRotationConfig message. Also converts values to other types if specified.
                     * @param message SyncRotationConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.container.v1.SecretSyncConfig.SyncRotationConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SyncRotationConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SyncRotationConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }
            }

            /** Properties of a ManagedOpenTelemetryConfig. */
            interface IManagedOpenTelemetryConfig {

                /** ManagedOpenTelemetryConfig scope */
                scope?: (google.container.v1.ManagedOpenTelemetryConfig.Scope|keyof typeof google.container.v1.ManagedOpenTelemetryConfig.Scope|null);
            }

            /** Represents a ManagedOpenTelemetryConfig. */
            class ManagedOpenTelemetryConfig implements IManagedOpenTelemetryConfig {

                /**
                 * Constructs a new ManagedOpenTelemetryConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IManagedOpenTelemetryConfig);

                /** ManagedOpenTelemetryConfig scope. */
                public scope?: (google.container.v1.ManagedOpenTelemetryConfig.Scope|keyof typeof google.container.v1.ManagedOpenTelemetryConfig.Scope|null);

                /**
                 * Creates a new ManagedOpenTelemetryConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ManagedOpenTelemetryConfig instance
                 */
                public static create(properties?: google.container.v1.IManagedOpenTelemetryConfig): google.container.v1.ManagedOpenTelemetryConfig;

                /**
                 * Encodes the specified ManagedOpenTelemetryConfig message. Does not implicitly {@link google.container.v1.ManagedOpenTelemetryConfig.verify|verify} messages.
                 * @param message ManagedOpenTelemetryConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IManagedOpenTelemetryConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified ManagedOpenTelemetryConfig message, length delimited. Does not implicitly {@link google.container.v1.ManagedOpenTelemetryConfig.verify|verify} messages.
                 * @param message ManagedOpenTelemetryConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1.IManagedOpenTelemetryConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a ManagedOpenTelemetryConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ManagedOpenTelemetryConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.ManagedOpenTelemetryConfig;

                /**
                 * Decodes a ManagedOpenTelemetryConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ManagedOpenTelemetryConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.ManagedOpenTelemetryConfig;

                /**
                 * Verifies a ManagedOpenTelemetryConfig message.
                 * @param message Plain 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 ManagedOpenTelemetryConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ManagedOpenTelemetryConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.ManagedOpenTelemetryConfig;

                /**
                 * Creates a plain object from a ManagedOpenTelemetryConfig message. Also converts values to other types if specified.
                 * @param message ManagedOpenTelemetryConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1.ManagedOpenTelemetryConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ManagedOpenTelemetryConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for ManagedOpenTelemetryConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace ManagedOpenTelemetryConfig {

                /** Scope enum. */
                enum Scope {
                    SCOPE_UNSPECIFIED = 0,
                    NONE = 1,
                    COLLECTION_AND_INSTRUMENTATION_COMPONENTS = 2
                }
            }

            /** Properties of a ManagedMachineLearningDiagnosticsConfig. */
            interface IManagedMachineLearningDiagnosticsConfig {

                /** ManagedMachineLearningDiagnosticsConfig enabled */
                enabled?: (boolean|null);
            }

            /** Represents a ManagedMachineLearningDiagnosticsConfig. */
            class ManagedMachineLearningDiagnosticsConfig implements IManagedMachineLearningDiagnosticsConfig {

                /**
                 * Constructs a new ManagedMachineLearningDiagnosticsConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IManagedMachineLearningDiagnosticsConfig);

                /** ManagedMachineLearningDiagnosticsConfig enabled. */
                public enabled?: (boolean|null);

                /**
                 * Creates a new ManagedMachineLearningDiagnosticsConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ManagedMachineLearningDiagnosticsConfig instance
                 */
                public static create(properties?: google.container.v1.IManagedMachineLearningDiagnosticsConfig): google.container.v1.ManagedMachineLearningDiagnosticsConfig;

                /**
                 * Encodes the specified ManagedMachineLearningDiagnosticsConfig message. Does not implicitly {@link google.container.v1.ManagedMachineLearningDiagnosticsConfig.verify|verify} messages.
                 * @param message ManagedMachineLearningDiagnosticsConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IManagedMachineLearningDiagnosticsConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified ManagedMachineLearningDiagnosticsConfig message, length delimited. Does not implicitly {@link google.container.v1.ManagedMachineLearningDiagnosticsConfig.verify|verify} messages.
                 * @param message ManagedMachineLearningDiagnosticsConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1.IManagedMachineLearningDiagnosticsConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a ManagedMachineLearningDiagnosticsConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ManagedMachineLearningDiagnosticsConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.ManagedMachineLearningDiagnosticsConfig;

                /**
                 * Decodes a ManagedMachineLearningDiagnosticsConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ManagedMachineLearningDiagnosticsConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.ManagedMachineLearningDiagnosticsConfig;

                /**
                 * Verifies a ManagedMachineLearningDiagnosticsConfig message.
                 * @param message Plain 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 ManagedMachineLearningDiagnosticsConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ManagedMachineLearningDiagnosticsConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.ManagedMachineLearningDiagnosticsConfig;

                /**
                 * Creates a plain object from a ManagedMachineLearningDiagnosticsConfig message. Also converts values to other types if specified.
                 * @param message ManagedMachineLearningDiagnosticsConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1.ManagedMachineLearningDiagnosticsConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ManagedMachineLearningDiagnosticsConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for ManagedMachineLearningDiagnosticsConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a PodSnapshotConfig. */
            interface IPodSnapshotConfig {

                /** PodSnapshotConfig enabled */
                enabled?: (boolean|null);
            }

            /** Represents a PodSnapshotConfig. */
            class PodSnapshotConfig implements IPodSnapshotConfig {

                /**
                 * Constructs a new PodSnapshotConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1.IPodSnapshotConfig);

                /** PodSnapshotConfig enabled. */
                public enabled: boolean;

                /**
                 * Creates a new PodSnapshotConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns PodSnapshotConfig instance
                 */
                public static create(properties?: google.container.v1.IPodSnapshotConfig): google.container.v1.PodSnapshotConfig;

                /**
                 * Encodes the specified PodSnapshotConfig message. Does not implicitly {@link google.container.v1.PodSnapshotConfig.verify|verify} messages.
                 * @param message PodSnapshotConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1.IPodSnapshotConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified PodSnapshotConfig message, length delimited. Does not implicitly {@link google.container.v1.PodSnapshotConfig.verify|verify} messages.
                 * @param message PodSnapshotConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1.IPodSnapshotConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a PodSnapshotConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns PodSnapshotConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.PodSnapshotConfig;

                /**
                 * Decodes a PodSnapshotConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns PodSnapshotConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.PodSnapshotConfig;

                /**
                 * Verifies a PodSnapshotConfig message.
                 * @param message Plain 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 PodSnapshotConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns PodSnapshotConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1.PodSnapshotConfig;

                /**
                 * Creates a plain object from a PodSnapshotConfig message. Also converts values to other types if specified.
                 * @param message PodSnapshotConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1.PodSnapshotConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this PodSnapshotConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for PodSnapshotConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }
        }

        /** Namespace v1beta1. */
        namespace v1beta1 {

            /** Represents a ClusterManager */
            class ClusterManager extends $protobuf.rpc.Service {

                /**
                 * Constructs a new ClusterManager service.
                 * @param rpcImpl RPC implementation
                 * @param [requestDelimited=false] Whether requests are length-delimited
                 * @param [responseDelimited=false] Whether responses are length-delimited
                 */
                constructor(rpcImpl: $protobuf.RPCImpl, requestDelimited?: boolean, responseDelimited?: boolean);

                /**
                 * Creates new ClusterManager service using the specified rpc implementation.
                 * @param rpcImpl RPC implementation
                 * @param [requestDelimited=false] Whether requests are length-delimited
                 * @param [responseDelimited=false] Whether responses are length-delimited
                 * @returns RPC service. Useful where requests and/or responses are streamed.
                 */
                public static create(rpcImpl: $protobuf.RPCImpl, requestDelimited?: boolean, responseDelimited?: boolean): ClusterManager;

                /**
                 * Calls ListClusters.
                 * @param request ListClustersRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and ListClustersResponse
                 */
                public listClusters(request: google.container.v1beta1.IListClustersRequest, callback: google.container.v1beta1.ClusterManager.ListClustersCallback): void;

                /**
                 * Calls ListClusters.
                 * @param request ListClustersRequest message or plain object
                 * @returns Promise
                 */
                public listClusters(request: google.container.v1beta1.IListClustersRequest): Promise<google.container.v1beta1.ListClustersResponse>;

                /**
                 * Calls GetCluster.
                 * @param request GetClusterRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and Cluster
                 */
                public getCluster(request: google.container.v1beta1.IGetClusterRequest, callback: google.container.v1beta1.ClusterManager.GetClusterCallback): void;

                /**
                 * Calls GetCluster.
                 * @param request GetClusterRequest message or plain object
                 * @returns Promise
                 */
                public getCluster(request: google.container.v1beta1.IGetClusterRequest): Promise<google.container.v1beta1.Cluster>;

                /**
                 * Calls CreateCluster.
                 * @param request CreateClusterRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and Operation
                 */
                public createCluster(request: google.container.v1beta1.ICreateClusterRequest, callback: google.container.v1beta1.ClusterManager.CreateClusterCallback): void;

                /**
                 * Calls CreateCluster.
                 * @param request CreateClusterRequest message or plain object
                 * @returns Promise
                 */
                public createCluster(request: google.container.v1beta1.ICreateClusterRequest): Promise<google.container.v1beta1.Operation>;

                /**
                 * Calls UpdateCluster.
                 * @param request UpdateClusterRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and Operation
                 */
                public updateCluster(request: google.container.v1beta1.IUpdateClusterRequest, callback: google.container.v1beta1.ClusterManager.UpdateClusterCallback): void;

                /**
                 * Calls UpdateCluster.
                 * @param request UpdateClusterRequest message or plain object
                 * @returns Promise
                 */
                public updateCluster(request: google.container.v1beta1.IUpdateClusterRequest): Promise<google.container.v1beta1.Operation>;

                /**
                 * Calls UpdateNodePool.
                 * @param request UpdateNodePoolRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and Operation
                 */
                public updateNodePool(request: google.container.v1beta1.IUpdateNodePoolRequest, callback: google.container.v1beta1.ClusterManager.UpdateNodePoolCallback): void;

                /**
                 * Calls UpdateNodePool.
                 * @param request UpdateNodePoolRequest message or plain object
                 * @returns Promise
                 */
                public updateNodePool(request: google.container.v1beta1.IUpdateNodePoolRequest): Promise<google.container.v1beta1.Operation>;

                /**
                 * Calls SetNodePoolAutoscaling.
                 * @param request SetNodePoolAutoscalingRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and Operation
                 */
                public setNodePoolAutoscaling(request: google.container.v1beta1.ISetNodePoolAutoscalingRequest, callback: google.container.v1beta1.ClusterManager.SetNodePoolAutoscalingCallback): void;

                /**
                 * Calls SetNodePoolAutoscaling.
                 * @param request SetNodePoolAutoscalingRequest message or plain object
                 * @returns Promise
                 */
                public setNodePoolAutoscaling(request: google.container.v1beta1.ISetNodePoolAutoscalingRequest): Promise<google.container.v1beta1.Operation>;

                /**
                 * Calls SetLoggingService.
                 * @param request SetLoggingServiceRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and Operation
                 */
                public setLoggingService(request: google.container.v1beta1.ISetLoggingServiceRequest, callback: google.container.v1beta1.ClusterManager.SetLoggingServiceCallback): void;

                /**
                 * Calls SetLoggingService.
                 * @param request SetLoggingServiceRequest message or plain object
                 * @returns Promise
                 */
                public setLoggingService(request: google.container.v1beta1.ISetLoggingServiceRequest): Promise<google.container.v1beta1.Operation>;

                /**
                 * Calls SetMonitoringService.
                 * @param request SetMonitoringServiceRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and Operation
                 */
                public setMonitoringService(request: google.container.v1beta1.ISetMonitoringServiceRequest, callback: google.container.v1beta1.ClusterManager.SetMonitoringServiceCallback): void;

                /**
                 * Calls SetMonitoringService.
                 * @param request SetMonitoringServiceRequest message or plain object
                 * @returns Promise
                 */
                public setMonitoringService(request: google.container.v1beta1.ISetMonitoringServiceRequest): Promise<google.container.v1beta1.Operation>;

                /**
                 * Calls SetAddonsConfig.
                 * @param request SetAddonsConfigRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and Operation
                 */
                public setAddonsConfig(request: google.container.v1beta1.ISetAddonsConfigRequest, callback: google.container.v1beta1.ClusterManager.SetAddonsConfigCallback): void;

                /**
                 * Calls SetAddonsConfig.
                 * @param request SetAddonsConfigRequest message or plain object
                 * @returns Promise
                 */
                public setAddonsConfig(request: google.container.v1beta1.ISetAddonsConfigRequest): Promise<google.container.v1beta1.Operation>;

                /**
                 * Calls SetLocations.
                 * @param request SetLocationsRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and Operation
                 */
                public setLocations(request: google.container.v1beta1.ISetLocationsRequest, callback: google.container.v1beta1.ClusterManager.SetLocationsCallback): void;

                /**
                 * Calls SetLocations.
                 * @param request SetLocationsRequest message or plain object
                 * @returns Promise
                 */
                public setLocations(request: google.container.v1beta1.ISetLocationsRequest): Promise<google.container.v1beta1.Operation>;

                /**
                 * Calls UpdateMaster.
                 * @param request UpdateMasterRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and Operation
                 */
                public updateMaster(request: google.container.v1beta1.IUpdateMasterRequest, callback: google.container.v1beta1.ClusterManager.UpdateMasterCallback): void;

                /**
                 * Calls UpdateMaster.
                 * @param request UpdateMasterRequest message or plain object
                 * @returns Promise
                 */
                public updateMaster(request: google.container.v1beta1.IUpdateMasterRequest): Promise<google.container.v1beta1.Operation>;

                /**
                 * Calls SetMasterAuth.
                 * @param request SetMasterAuthRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and Operation
                 */
                public setMasterAuth(request: google.container.v1beta1.ISetMasterAuthRequest, callback: google.container.v1beta1.ClusterManager.SetMasterAuthCallback): void;

                /**
                 * Calls SetMasterAuth.
                 * @param request SetMasterAuthRequest message or plain object
                 * @returns Promise
                 */
                public setMasterAuth(request: google.container.v1beta1.ISetMasterAuthRequest): Promise<google.container.v1beta1.Operation>;

                /**
                 * Calls DeleteCluster.
                 * @param request DeleteClusterRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and Operation
                 */
                public deleteCluster(request: google.container.v1beta1.IDeleteClusterRequest, callback: google.container.v1beta1.ClusterManager.DeleteClusterCallback): void;

                /**
                 * Calls DeleteCluster.
                 * @param request DeleteClusterRequest message or plain object
                 * @returns Promise
                 */
                public deleteCluster(request: google.container.v1beta1.IDeleteClusterRequest): Promise<google.container.v1beta1.Operation>;

                /**
                 * Calls ListOperations.
                 * @param request ListOperationsRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and ListOperationsResponse
                 */
                public listOperations(request: google.container.v1beta1.IListOperationsRequest, callback: google.container.v1beta1.ClusterManager.ListOperationsCallback): void;

                /**
                 * Calls ListOperations.
                 * @param request ListOperationsRequest message or plain object
                 * @returns Promise
                 */
                public listOperations(request: google.container.v1beta1.IListOperationsRequest): Promise<google.container.v1beta1.ListOperationsResponse>;

                /**
                 * Calls GetOperation.
                 * @param request GetOperationRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and Operation
                 */
                public getOperation(request: google.container.v1beta1.IGetOperationRequest, callback: google.container.v1beta1.ClusterManager.GetOperationCallback): void;

                /**
                 * Calls GetOperation.
                 * @param request GetOperationRequest message or plain object
                 * @returns Promise
                 */
                public getOperation(request: google.container.v1beta1.IGetOperationRequest): Promise<google.container.v1beta1.Operation>;

                /**
                 * Calls CancelOperation.
                 * @param request CancelOperationRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and Empty
                 */
                public cancelOperation(request: google.container.v1beta1.ICancelOperationRequest, callback: google.container.v1beta1.ClusterManager.CancelOperationCallback): void;

                /**
                 * Calls CancelOperation.
                 * @param request CancelOperationRequest message or plain object
                 * @returns Promise
                 */
                public cancelOperation(request: google.container.v1beta1.ICancelOperationRequest): Promise<google.protobuf.Empty>;

                /**
                 * Calls GetServerConfig.
                 * @param request GetServerConfigRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and ServerConfig
                 */
                public getServerConfig(request: google.container.v1beta1.IGetServerConfigRequest, callback: google.container.v1beta1.ClusterManager.GetServerConfigCallback): void;

                /**
                 * Calls GetServerConfig.
                 * @param request GetServerConfigRequest message or plain object
                 * @returns Promise
                 */
                public getServerConfig(request: google.container.v1beta1.IGetServerConfigRequest): Promise<google.container.v1beta1.ServerConfig>;

                /**
                 * Calls GetJSONWebKeys.
                 * @param request GetJSONWebKeysRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and GetJSONWebKeysResponse
                 */
                public getJSONWebKeys(request: google.container.v1beta1.IGetJSONWebKeysRequest, callback: google.container.v1beta1.ClusterManager.GetJSONWebKeysCallback): void;

                /**
                 * Calls GetJSONWebKeys.
                 * @param request GetJSONWebKeysRequest message or plain object
                 * @returns Promise
                 */
                public getJSONWebKeys(request: google.container.v1beta1.IGetJSONWebKeysRequest): Promise<google.container.v1beta1.GetJSONWebKeysResponse>;

                /**
                 * Calls ListNodePools.
                 * @param request ListNodePoolsRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and ListNodePoolsResponse
                 */
                public listNodePools(request: google.container.v1beta1.IListNodePoolsRequest, callback: google.container.v1beta1.ClusterManager.ListNodePoolsCallback): void;

                /**
                 * Calls ListNodePools.
                 * @param request ListNodePoolsRequest message or plain object
                 * @returns Promise
                 */
                public listNodePools(request: google.container.v1beta1.IListNodePoolsRequest): Promise<google.container.v1beta1.ListNodePoolsResponse>;

                /**
                 * Calls GetNodePool.
                 * @param request GetNodePoolRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and NodePool
                 */
                public getNodePool(request: google.container.v1beta1.IGetNodePoolRequest, callback: google.container.v1beta1.ClusterManager.GetNodePoolCallback): void;

                /**
                 * Calls GetNodePool.
                 * @param request GetNodePoolRequest message or plain object
                 * @returns Promise
                 */
                public getNodePool(request: google.container.v1beta1.IGetNodePoolRequest): Promise<google.container.v1beta1.NodePool>;

                /**
                 * Calls CreateNodePool.
                 * @param request CreateNodePoolRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and Operation
                 */
                public createNodePool(request: google.container.v1beta1.ICreateNodePoolRequest, callback: google.container.v1beta1.ClusterManager.CreateNodePoolCallback): void;

                /**
                 * Calls CreateNodePool.
                 * @param request CreateNodePoolRequest message or plain object
                 * @returns Promise
                 */
                public createNodePool(request: google.container.v1beta1.ICreateNodePoolRequest): Promise<google.container.v1beta1.Operation>;

                /**
                 * Calls DeleteNodePool.
                 * @param request DeleteNodePoolRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and Operation
                 */
                public deleteNodePool(request: google.container.v1beta1.IDeleteNodePoolRequest, callback: google.container.v1beta1.ClusterManager.DeleteNodePoolCallback): void;

                /**
                 * Calls DeleteNodePool.
                 * @param request DeleteNodePoolRequest message or plain object
                 * @returns Promise
                 */
                public deleteNodePool(request: google.container.v1beta1.IDeleteNodePoolRequest): Promise<google.container.v1beta1.Operation>;

                /**
                 * Calls CompleteNodePoolUpgrade.
                 * @param request CompleteNodePoolUpgradeRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and Empty
                 */
                public completeNodePoolUpgrade(request: google.container.v1beta1.ICompleteNodePoolUpgradeRequest, callback: google.container.v1beta1.ClusterManager.CompleteNodePoolUpgradeCallback): void;

                /**
                 * Calls CompleteNodePoolUpgrade.
                 * @param request CompleteNodePoolUpgradeRequest message or plain object
                 * @returns Promise
                 */
                public completeNodePoolUpgrade(request: google.container.v1beta1.ICompleteNodePoolUpgradeRequest): Promise<google.protobuf.Empty>;

                /**
                 * Calls RollbackNodePoolUpgrade.
                 * @param request RollbackNodePoolUpgradeRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and Operation
                 */
                public rollbackNodePoolUpgrade(request: google.container.v1beta1.IRollbackNodePoolUpgradeRequest, callback: google.container.v1beta1.ClusterManager.RollbackNodePoolUpgradeCallback): void;

                /**
                 * Calls RollbackNodePoolUpgrade.
                 * @param request RollbackNodePoolUpgradeRequest message or plain object
                 * @returns Promise
                 */
                public rollbackNodePoolUpgrade(request: google.container.v1beta1.IRollbackNodePoolUpgradeRequest): Promise<google.container.v1beta1.Operation>;

                /**
                 * Calls SetNodePoolManagement.
                 * @param request SetNodePoolManagementRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and Operation
                 */
                public setNodePoolManagement(request: google.container.v1beta1.ISetNodePoolManagementRequest, callback: google.container.v1beta1.ClusterManager.SetNodePoolManagementCallback): void;

                /**
                 * Calls SetNodePoolManagement.
                 * @param request SetNodePoolManagementRequest message or plain object
                 * @returns Promise
                 */
                public setNodePoolManagement(request: google.container.v1beta1.ISetNodePoolManagementRequest): Promise<google.container.v1beta1.Operation>;

                /**
                 * Calls SetLabels.
                 * @param request SetLabelsRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and Operation
                 */
                public setLabels(request: google.container.v1beta1.ISetLabelsRequest, callback: google.container.v1beta1.ClusterManager.SetLabelsCallback): void;

                /**
                 * Calls SetLabels.
                 * @param request SetLabelsRequest message or plain object
                 * @returns Promise
                 */
                public setLabels(request: google.container.v1beta1.ISetLabelsRequest): Promise<google.container.v1beta1.Operation>;

                /**
                 * Calls SetLegacyAbac.
                 * @param request SetLegacyAbacRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and Operation
                 */
                public setLegacyAbac(request: google.container.v1beta1.ISetLegacyAbacRequest, callback: google.container.v1beta1.ClusterManager.SetLegacyAbacCallback): void;

                /**
                 * Calls SetLegacyAbac.
                 * @param request SetLegacyAbacRequest message or plain object
                 * @returns Promise
                 */
                public setLegacyAbac(request: google.container.v1beta1.ISetLegacyAbacRequest): Promise<google.container.v1beta1.Operation>;

                /**
                 * Calls StartIPRotation.
                 * @param request StartIPRotationRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and Operation
                 */
                public startIPRotation(request: google.container.v1beta1.IStartIPRotationRequest, callback: google.container.v1beta1.ClusterManager.StartIPRotationCallback): void;

                /**
                 * Calls StartIPRotation.
                 * @param request StartIPRotationRequest message or plain object
                 * @returns Promise
                 */
                public startIPRotation(request: google.container.v1beta1.IStartIPRotationRequest): Promise<google.container.v1beta1.Operation>;

                /**
                 * Calls CompleteIPRotation.
                 * @param request CompleteIPRotationRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and Operation
                 */
                public completeIPRotation(request: google.container.v1beta1.ICompleteIPRotationRequest, callback: google.container.v1beta1.ClusterManager.CompleteIPRotationCallback): void;

                /**
                 * Calls CompleteIPRotation.
                 * @param request CompleteIPRotationRequest message or plain object
                 * @returns Promise
                 */
                public completeIPRotation(request: google.container.v1beta1.ICompleteIPRotationRequest): Promise<google.container.v1beta1.Operation>;

                /**
                 * Calls SetNodePoolSize.
                 * @param request SetNodePoolSizeRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and Operation
                 */
                public setNodePoolSize(request: google.container.v1beta1.ISetNodePoolSizeRequest, callback: google.container.v1beta1.ClusterManager.SetNodePoolSizeCallback): void;

                /**
                 * Calls SetNodePoolSize.
                 * @param request SetNodePoolSizeRequest message or plain object
                 * @returns Promise
                 */
                public setNodePoolSize(request: google.container.v1beta1.ISetNodePoolSizeRequest): Promise<google.container.v1beta1.Operation>;

                /**
                 * Calls SetNetworkPolicy.
                 * @param request SetNetworkPolicyRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and Operation
                 */
                public setNetworkPolicy(request: google.container.v1beta1.ISetNetworkPolicyRequest, callback: google.container.v1beta1.ClusterManager.SetNetworkPolicyCallback): void;

                /**
                 * Calls SetNetworkPolicy.
                 * @param request SetNetworkPolicyRequest message or plain object
                 * @returns Promise
                 */
                public setNetworkPolicy(request: google.container.v1beta1.ISetNetworkPolicyRequest): Promise<google.container.v1beta1.Operation>;

                /**
                 * Calls SetMaintenancePolicy.
                 * @param request SetMaintenancePolicyRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and Operation
                 */
                public setMaintenancePolicy(request: google.container.v1beta1.ISetMaintenancePolicyRequest, callback: google.container.v1beta1.ClusterManager.SetMaintenancePolicyCallback): void;

                /**
                 * Calls SetMaintenancePolicy.
                 * @param request SetMaintenancePolicyRequest message or plain object
                 * @returns Promise
                 */
                public setMaintenancePolicy(request: google.container.v1beta1.ISetMaintenancePolicyRequest): Promise<google.container.v1beta1.Operation>;

                /**
                 * Calls ListUsableSubnetworks.
                 * @param request ListUsableSubnetworksRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and ListUsableSubnetworksResponse
                 */
                public listUsableSubnetworks(request: google.container.v1beta1.IListUsableSubnetworksRequest, callback: google.container.v1beta1.ClusterManager.ListUsableSubnetworksCallback): void;

                /**
                 * Calls ListUsableSubnetworks.
                 * @param request ListUsableSubnetworksRequest message or plain object
                 * @returns Promise
                 */
                public listUsableSubnetworks(request: google.container.v1beta1.IListUsableSubnetworksRequest): Promise<google.container.v1beta1.ListUsableSubnetworksResponse>;

                /**
                 * Calls CheckAutopilotCompatibility.
                 * @param request CheckAutopilotCompatibilityRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and CheckAutopilotCompatibilityResponse
                 */
                public checkAutopilotCompatibility(request: google.container.v1beta1.ICheckAutopilotCompatibilityRequest, callback: google.container.v1beta1.ClusterManager.CheckAutopilotCompatibilityCallback): void;

                /**
                 * Calls CheckAutopilotCompatibility.
                 * @param request CheckAutopilotCompatibilityRequest message or plain object
                 * @returns Promise
                 */
                public checkAutopilotCompatibility(request: google.container.v1beta1.ICheckAutopilotCompatibilityRequest): Promise<google.container.v1beta1.CheckAutopilotCompatibilityResponse>;

                /**
                 * Calls ListLocations.
                 * @param request ListLocationsRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and ListLocationsResponse
                 */
                public listLocations(request: google.container.v1beta1.IListLocationsRequest, callback: google.container.v1beta1.ClusterManager.ListLocationsCallback): void;

                /**
                 * Calls ListLocations.
                 * @param request ListLocationsRequest message or plain object
                 * @returns Promise
                 */
                public listLocations(request: google.container.v1beta1.IListLocationsRequest): Promise<google.container.v1beta1.ListLocationsResponse>;

                /**
                 * Calls FetchClusterUpgradeInfo.
                 * @param request FetchClusterUpgradeInfoRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and ClusterUpgradeInfo
                 */
                public fetchClusterUpgradeInfo(request: google.container.v1beta1.IFetchClusterUpgradeInfoRequest, callback: google.container.v1beta1.ClusterManager.FetchClusterUpgradeInfoCallback): void;

                /**
                 * Calls FetchClusterUpgradeInfo.
                 * @param request FetchClusterUpgradeInfoRequest message or plain object
                 * @returns Promise
                 */
                public fetchClusterUpgradeInfo(request: google.container.v1beta1.IFetchClusterUpgradeInfoRequest): Promise<google.container.v1beta1.ClusterUpgradeInfo>;

                /**
                 * Calls FetchNodePoolUpgradeInfo.
                 * @param request FetchNodePoolUpgradeInfoRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and NodePoolUpgradeInfo
                 */
                public fetchNodePoolUpgradeInfo(request: google.container.v1beta1.IFetchNodePoolUpgradeInfoRequest, callback: google.container.v1beta1.ClusterManager.FetchNodePoolUpgradeInfoCallback): void;

                /**
                 * Calls FetchNodePoolUpgradeInfo.
                 * @param request FetchNodePoolUpgradeInfoRequest message or plain object
                 * @returns Promise
                 */
                public fetchNodePoolUpgradeInfo(request: google.container.v1beta1.IFetchNodePoolUpgradeInfoRequest): Promise<google.container.v1beta1.NodePoolUpgradeInfo>;

                /**
                 * Calls CompleteControlPlaneUpgrade.
                 * @param request CompleteControlPlaneUpgradeRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and Operation
                 */
                public completeControlPlaneUpgrade(request: google.container.v1beta1.ICompleteControlPlaneUpgradeRequest, callback: google.container.v1beta1.ClusterManager.CompleteControlPlaneUpgradeCallback): void;

                /**
                 * Calls CompleteControlPlaneUpgrade.
                 * @param request CompleteControlPlaneUpgradeRequest message or plain object
                 * @returns Promise
                 */
                public completeControlPlaneUpgrade(request: google.container.v1beta1.ICompleteControlPlaneUpgradeRequest): Promise<google.container.v1beta1.Operation>;
            }

            namespace ClusterManager {

                /**
                 * Callback as used by {@link google.container.v1beta1.ClusterManager|listClusters}.
                 * @param error Error, if any
                 * @param [response] ListClustersResponse
                 */
                type ListClustersCallback = (error: (Error|null), response?: google.container.v1beta1.ListClustersResponse) => void;

                /**
                 * Callback as used by {@link google.container.v1beta1.ClusterManager|getCluster}.
                 * @param error Error, if any
                 * @param [response] Cluster
                 */
                type GetClusterCallback = (error: (Error|null), response?: google.container.v1beta1.Cluster) => void;

                /**
                 * Callback as used by {@link google.container.v1beta1.ClusterManager|createCluster}.
                 * @param error Error, if any
                 * @param [response] Operation
                 */
                type CreateClusterCallback = (error: (Error|null), response?: google.container.v1beta1.Operation) => void;

                /**
                 * Callback as used by {@link google.container.v1beta1.ClusterManager|updateCluster}.
                 * @param error Error, if any
                 * @param [response] Operation
                 */
                type UpdateClusterCallback = (error: (Error|null), response?: google.container.v1beta1.Operation) => void;

                /**
                 * Callback as used by {@link google.container.v1beta1.ClusterManager|updateNodePool}.
                 * @param error Error, if any
                 * @param [response] Operation
                 */
                type UpdateNodePoolCallback = (error: (Error|null), response?: google.container.v1beta1.Operation) => void;

                /**
                 * Callback as used by {@link google.container.v1beta1.ClusterManager|setNodePoolAutoscaling}.
                 * @param error Error, if any
                 * @param [response] Operation
                 */
                type SetNodePoolAutoscalingCallback = (error: (Error|null), response?: google.container.v1beta1.Operation) => void;

                /**
                 * Callback as used by {@link google.container.v1beta1.ClusterManager|setLoggingService}.
                 * @param error Error, if any
                 * @param [response] Operation
                 */
                type SetLoggingServiceCallback = (error: (Error|null), response?: google.container.v1beta1.Operation) => void;

                /**
                 * Callback as used by {@link google.container.v1beta1.ClusterManager|setMonitoringService}.
                 * @param error Error, if any
                 * @param [response] Operation
                 */
                type SetMonitoringServiceCallback = (error: (Error|null), response?: google.container.v1beta1.Operation) => void;

                /**
                 * Callback as used by {@link google.container.v1beta1.ClusterManager|setAddonsConfig}.
                 * @param error Error, if any
                 * @param [response] Operation
                 */
                type SetAddonsConfigCallback = (error: (Error|null), response?: google.container.v1beta1.Operation) => void;

                /**
                 * Callback as used by {@link google.container.v1beta1.ClusterManager|setLocations}.
                 * @param error Error, if any
                 * @param [response] Operation
                 */
                type SetLocationsCallback = (error: (Error|null), response?: google.container.v1beta1.Operation) => void;

                /**
                 * Callback as used by {@link google.container.v1beta1.ClusterManager|updateMaster}.
                 * @param error Error, if any
                 * @param [response] Operation
                 */
                type UpdateMasterCallback = (error: (Error|null), response?: google.container.v1beta1.Operation) => void;

                /**
                 * Callback as used by {@link google.container.v1beta1.ClusterManager|setMasterAuth}.
                 * @param error Error, if any
                 * @param [response] Operation
                 */
                type SetMasterAuthCallback = (error: (Error|null), response?: google.container.v1beta1.Operation) => void;

                /**
                 * Callback as used by {@link google.container.v1beta1.ClusterManager|deleteCluster}.
                 * @param error Error, if any
                 * @param [response] Operation
                 */
                type DeleteClusterCallback = (error: (Error|null), response?: google.container.v1beta1.Operation) => void;

                /**
                 * Callback as used by {@link google.container.v1beta1.ClusterManager|listOperations}.
                 * @param error Error, if any
                 * @param [response] ListOperationsResponse
                 */
                type ListOperationsCallback = (error: (Error|null), response?: google.container.v1beta1.ListOperationsResponse) => void;

                /**
                 * Callback as used by {@link google.container.v1beta1.ClusterManager|getOperation}.
                 * @param error Error, if any
                 * @param [response] Operation
                 */
                type GetOperationCallback = (error: (Error|null), response?: google.container.v1beta1.Operation) => void;

                /**
                 * Callback as used by {@link google.container.v1beta1.ClusterManager|cancelOperation}.
                 * @param error Error, if any
                 * @param [response] Empty
                 */
                type CancelOperationCallback = (error: (Error|null), response?: google.protobuf.Empty) => void;

                /**
                 * Callback as used by {@link google.container.v1beta1.ClusterManager|getServerConfig}.
                 * @param error Error, if any
                 * @param [response] ServerConfig
                 */
                type GetServerConfigCallback = (error: (Error|null), response?: google.container.v1beta1.ServerConfig) => void;

                /**
                 * Callback as used by {@link google.container.v1beta1.ClusterManager|getJSONWebKeys}.
                 * @param error Error, if any
                 * @param [response] GetJSONWebKeysResponse
                 */
                type GetJSONWebKeysCallback = (error: (Error|null), response?: google.container.v1beta1.GetJSONWebKeysResponse) => void;

                /**
                 * Callback as used by {@link google.container.v1beta1.ClusterManager|listNodePools}.
                 * @param error Error, if any
                 * @param [response] ListNodePoolsResponse
                 */
                type ListNodePoolsCallback = (error: (Error|null), response?: google.container.v1beta1.ListNodePoolsResponse) => void;

                /**
                 * Callback as used by {@link google.container.v1beta1.ClusterManager|getNodePool}.
                 * @param error Error, if any
                 * @param [response] NodePool
                 */
                type GetNodePoolCallback = (error: (Error|null), response?: google.container.v1beta1.NodePool) => void;

                /**
                 * Callback as used by {@link google.container.v1beta1.ClusterManager|createNodePool}.
                 * @param error Error, if any
                 * @param [response] Operation
                 */
                type CreateNodePoolCallback = (error: (Error|null), response?: google.container.v1beta1.Operation) => void;

                /**
                 * Callback as used by {@link google.container.v1beta1.ClusterManager|deleteNodePool}.
                 * @param error Error, if any
                 * @param [response] Operation
                 */
                type DeleteNodePoolCallback = (error: (Error|null), response?: google.container.v1beta1.Operation) => void;

                /**
                 * Callback as used by {@link google.container.v1beta1.ClusterManager|completeNodePoolUpgrade}.
                 * @param error Error, if any
                 * @param [response] Empty
                 */
                type CompleteNodePoolUpgradeCallback = (error: (Error|null), response?: google.protobuf.Empty) => void;

                /**
                 * Callback as used by {@link google.container.v1beta1.ClusterManager|rollbackNodePoolUpgrade}.
                 * @param error Error, if any
                 * @param [response] Operation
                 */
                type RollbackNodePoolUpgradeCallback = (error: (Error|null), response?: google.container.v1beta1.Operation) => void;

                /**
                 * Callback as used by {@link google.container.v1beta1.ClusterManager|setNodePoolManagement}.
                 * @param error Error, if any
                 * @param [response] Operation
                 */
                type SetNodePoolManagementCallback = (error: (Error|null), response?: google.container.v1beta1.Operation) => void;

                /**
                 * Callback as used by {@link google.container.v1beta1.ClusterManager|setLabels}.
                 * @param error Error, if any
                 * @param [response] Operation
                 */
                type SetLabelsCallback = (error: (Error|null), response?: google.container.v1beta1.Operation) => void;

                /**
                 * Callback as used by {@link google.container.v1beta1.ClusterManager|setLegacyAbac}.
                 * @param error Error, if any
                 * @param [response] Operation
                 */
                type SetLegacyAbacCallback = (error: (Error|null), response?: google.container.v1beta1.Operation) => void;

                /**
                 * Callback as used by {@link google.container.v1beta1.ClusterManager|startIPRotation}.
                 * @param error Error, if any
                 * @param [response] Operation
                 */
                type StartIPRotationCallback = (error: (Error|null), response?: google.container.v1beta1.Operation) => void;

                /**
                 * Callback as used by {@link google.container.v1beta1.ClusterManager|completeIPRotation}.
                 * @param error Error, if any
                 * @param [response] Operation
                 */
                type CompleteIPRotationCallback = (error: (Error|null), response?: google.container.v1beta1.Operation) => void;

                /**
                 * Callback as used by {@link google.container.v1beta1.ClusterManager|setNodePoolSize}.
                 * @param error Error, if any
                 * @param [response] Operation
                 */
                type SetNodePoolSizeCallback = (error: (Error|null), response?: google.container.v1beta1.Operation) => void;

                /**
                 * Callback as used by {@link google.container.v1beta1.ClusterManager|setNetworkPolicy}.
                 * @param error Error, if any
                 * @param [response] Operation
                 */
                type SetNetworkPolicyCallback = (error: (Error|null), response?: google.container.v1beta1.Operation) => void;

                /**
                 * Callback as used by {@link google.container.v1beta1.ClusterManager|setMaintenancePolicy}.
                 * @param error Error, if any
                 * @param [response] Operation
                 */
                type SetMaintenancePolicyCallback = (error: (Error|null), response?: google.container.v1beta1.Operation) => void;

                /**
                 * Callback as used by {@link google.container.v1beta1.ClusterManager|listUsableSubnetworks}.
                 * @param error Error, if any
                 * @param [response] ListUsableSubnetworksResponse
                 */
                type ListUsableSubnetworksCallback = (error: (Error|null), response?: google.container.v1beta1.ListUsableSubnetworksResponse) => void;

                /**
                 * Callback as used by {@link google.container.v1beta1.ClusterManager|checkAutopilotCompatibility}.
                 * @param error Error, if any
                 * @param [response] CheckAutopilotCompatibilityResponse
                 */
                type CheckAutopilotCompatibilityCallback = (error: (Error|null), response?: google.container.v1beta1.CheckAutopilotCompatibilityResponse) => void;

                /**
                 * Callback as used by {@link google.container.v1beta1.ClusterManager|listLocations}.
                 * @param error Error, if any
                 * @param [response] ListLocationsResponse
                 */
                type ListLocationsCallback = (error: (Error|null), response?: google.container.v1beta1.ListLocationsResponse) => void;

                /**
                 * Callback as used by {@link google.container.v1beta1.ClusterManager|fetchClusterUpgradeInfo}.
                 * @param error Error, if any
                 * @param [response] ClusterUpgradeInfo
                 */
                type FetchClusterUpgradeInfoCallback = (error: (Error|null), response?: google.container.v1beta1.ClusterUpgradeInfo) => void;

                /**
                 * Callback as used by {@link google.container.v1beta1.ClusterManager|fetchNodePoolUpgradeInfo}.
                 * @param error Error, if any
                 * @param [response] NodePoolUpgradeInfo
                 */
                type FetchNodePoolUpgradeInfoCallback = (error: (Error|null), response?: google.container.v1beta1.NodePoolUpgradeInfo) => void;

                /**
                 * Callback as used by {@link google.container.v1beta1.ClusterManager|completeControlPlaneUpgrade}.
                 * @param error Error, if any
                 * @param [response] Operation
                 */
                type CompleteControlPlaneUpgradeCallback = (error: (Error|null), response?: google.container.v1beta1.Operation) => void;
            }

            /** Properties of a CompleteControlPlaneUpgradeRequest. */
            interface ICompleteControlPlaneUpgradeRequest {

                /** CompleteControlPlaneUpgradeRequest name */
                name?: (string|null);

                /** CompleteControlPlaneUpgradeRequest version */
                version?: (string|null);
            }

            /** Represents a CompleteControlPlaneUpgradeRequest. */
            class CompleteControlPlaneUpgradeRequest implements ICompleteControlPlaneUpgradeRequest {

                /**
                 * Constructs a new CompleteControlPlaneUpgradeRequest.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.ICompleteControlPlaneUpgradeRequest);

                /** CompleteControlPlaneUpgradeRequest name. */
                public name: string;

                /** CompleteControlPlaneUpgradeRequest version. */
                public version: string;

                /**
                 * Creates a new CompleteControlPlaneUpgradeRequest instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns CompleteControlPlaneUpgradeRequest instance
                 */
                public static create(properties?: google.container.v1beta1.ICompleteControlPlaneUpgradeRequest): google.container.v1beta1.CompleteControlPlaneUpgradeRequest;

                /**
                 * Encodes the specified CompleteControlPlaneUpgradeRequest message. Does not implicitly {@link google.container.v1beta1.CompleteControlPlaneUpgradeRequest.verify|verify} messages.
                 * @param message CompleteControlPlaneUpgradeRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.ICompleteControlPlaneUpgradeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified CompleteControlPlaneUpgradeRequest message, length delimited. Does not implicitly {@link google.container.v1beta1.CompleteControlPlaneUpgradeRequest.verify|verify} messages.
                 * @param message CompleteControlPlaneUpgradeRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.ICompleteControlPlaneUpgradeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a CompleteControlPlaneUpgradeRequest message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns CompleteControlPlaneUpgradeRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.CompleteControlPlaneUpgradeRequest;

                /**
                 * Decodes a CompleteControlPlaneUpgradeRequest message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns CompleteControlPlaneUpgradeRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.CompleteControlPlaneUpgradeRequest;

                /**
                 * Verifies a CompleteControlPlaneUpgradeRequest message.
                 * @param message Plain 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 CompleteControlPlaneUpgradeRequest message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns CompleteControlPlaneUpgradeRequest
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.CompleteControlPlaneUpgradeRequest;

                /**
                 * Creates a plain object from a CompleteControlPlaneUpgradeRequest message. Also converts values to other types if specified.
                 * @param message CompleteControlPlaneUpgradeRequest
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.CompleteControlPlaneUpgradeRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this CompleteControlPlaneUpgradeRequest to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for CompleteControlPlaneUpgradeRequest
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a LinuxNodeConfig. */
            interface ILinuxNodeConfig {

                /** LinuxNodeConfig sysctls */
                sysctls?: ({ [k: string]: string }|null);

                /** LinuxNodeConfig cgroupMode */
                cgroupMode?: (google.container.v1beta1.LinuxNodeConfig.CgroupMode|keyof typeof google.container.v1beta1.LinuxNodeConfig.CgroupMode|null);

                /** LinuxNodeConfig hugepages */
                hugepages?: (google.container.v1beta1.LinuxNodeConfig.IHugepagesConfig|null);

                /** LinuxNodeConfig transparentHugepageEnabled */
                transparentHugepageEnabled?: (google.container.v1beta1.LinuxNodeConfig.TransparentHugepageEnabled|keyof typeof google.container.v1beta1.LinuxNodeConfig.TransparentHugepageEnabled|null);

                /** LinuxNodeConfig transparentHugepageDefrag */
                transparentHugepageDefrag?: (google.container.v1beta1.LinuxNodeConfig.TransparentHugepageDefrag|keyof typeof google.container.v1beta1.LinuxNodeConfig.TransparentHugepageDefrag|null);

                /** LinuxNodeConfig customNodeInit */
                customNodeInit?: (google.container.v1beta1.LinuxNodeConfig.ICustomNodeInit|null);

                /** LinuxNodeConfig swapConfig */
                swapConfig?: (google.container.v1beta1.LinuxNodeConfig.ISwapConfig|null);

                /** LinuxNodeConfig nodeKernelModuleLoading */
                nodeKernelModuleLoading?: (google.container.v1beta1.LinuxNodeConfig.INodeKernelModuleLoading|null);

                /** LinuxNodeConfig accurateTimeConfig */
                accurateTimeConfig?: (google.container.v1beta1.LinuxNodeConfig.IAccurateTimeConfig|null);
            }

            /** Represents a LinuxNodeConfig. */
            class LinuxNodeConfig implements ILinuxNodeConfig {

                /**
                 * Constructs a new LinuxNodeConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.ILinuxNodeConfig);

                /** LinuxNodeConfig sysctls. */
                public sysctls: { [k: string]: string };

                /** LinuxNodeConfig cgroupMode. */
                public cgroupMode: (google.container.v1beta1.LinuxNodeConfig.CgroupMode|keyof typeof google.container.v1beta1.LinuxNodeConfig.CgroupMode);

                /** LinuxNodeConfig hugepages. */
                public hugepages?: (google.container.v1beta1.LinuxNodeConfig.IHugepagesConfig|null);

                /** LinuxNodeConfig transparentHugepageEnabled. */
                public transparentHugepageEnabled: (google.container.v1beta1.LinuxNodeConfig.TransparentHugepageEnabled|keyof typeof google.container.v1beta1.LinuxNodeConfig.TransparentHugepageEnabled);

                /** LinuxNodeConfig transparentHugepageDefrag. */
                public transparentHugepageDefrag: (google.container.v1beta1.LinuxNodeConfig.TransparentHugepageDefrag|keyof typeof google.container.v1beta1.LinuxNodeConfig.TransparentHugepageDefrag);

                /** LinuxNodeConfig customNodeInit. */
                public customNodeInit?: (google.container.v1beta1.LinuxNodeConfig.ICustomNodeInit|null);

                /** LinuxNodeConfig swapConfig. */
                public swapConfig?: (google.container.v1beta1.LinuxNodeConfig.ISwapConfig|null);

                /** LinuxNodeConfig nodeKernelModuleLoading. */
                public nodeKernelModuleLoading?: (google.container.v1beta1.LinuxNodeConfig.INodeKernelModuleLoading|null);

                /** LinuxNodeConfig accurateTimeConfig. */
                public accurateTimeConfig?: (google.container.v1beta1.LinuxNodeConfig.IAccurateTimeConfig|null);

                /**
                 * Creates a new LinuxNodeConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns LinuxNodeConfig instance
                 */
                public static create(properties?: google.container.v1beta1.ILinuxNodeConfig): google.container.v1beta1.LinuxNodeConfig;

                /**
                 * Encodes the specified LinuxNodeConfig message. Does not implicitly {@link google.container.v1beta1.LinuxNodeConfig.verify|verify} messages.
                 * @param message LinuxNodeConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.ILinuxNodeConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified LinuxNodeConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.LinuxNodeConfig.verify|verify} messages.
                 * @param message LinuxNodeConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.ILinuxNodeConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a LinuxNodeConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns LinuxNodeConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.LinuxNodeConfig;

                /**
                 * Decodes a LinuxNodeConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns LinuxNodeConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.LinuxNodeConfig;

                /**
                 * Verifies a LinuxNodeConfig message.
                 * @param message Plain 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 LinuxNodeConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns LinuxNodeConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.LinuxNodeConfig;

                /**
                 * Creates a plain object from a LinuxNodeConfig message. Also converts values to other types if specified.
                 * @param message LinuxNodeConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.LinuxNodeConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this LinuxNodeConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for LinuxNodeConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace LinuxNodeConfig {

                /** CgroupMode enum. */
                enum CgroupMode {
                    CGROUP_MODE_UNSPECIFIED = 0,
                    CGROUP_MODE_V1 = 1,
                    CGROUP_MODE_V2 = 2
                }

                /** Properties of a HugepagesConfig. */
                interface IHugepagesConfig {

                    /** HugepagesConfig hugepageSize2m */
                    hugepageSize2m?: (number|null);

                    /** HugepagesConfig hugepageSize1g */
                    hugepageSize1g?: (number|null);
                }

                /** Represents a HugepagesConfig. */
                class HugepagesConfig implements IHugepagesConfig {

                    /**
                     * Constructs a new HugepagesConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.container.v1beta1.LinuxNodeConfig.IHugepagesConfig);

                    /** HugepagesConfig hugepageSize2m. */
                    public hugepageSize2m?: (number|null);

                    /** HugepagesConfig hugepageSize1g. */
                    public hugepageSize1g?: (number|null);

                    /**
                     * Creates a new HugepagesConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HugepagesConfig instance
                     */
                    public static create(properties?: google.container.v1beta1.LinuxNodeConfig.IHugepagesConfig): google.container.v1beta1.LinuxNodeConfig.HugepagesConfig;

                    /**
                     * Encodes the specified HugepagesConfig message. Does not implicitly {@link google.container.v1beta1.LinuxNodeConfig.HugepagesConfig.verify|verify} messages.
                     * @param message HugepagesConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.container.v1beta1.LinuxNodeConfig.IHugepagesConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HugepagesConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.LinuxNodeConfig.HugepagesConfig.verify|verify} messages.
                     * @param message HugepagesConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.container.v1beta1.LinuxNodeConfig.IHugepagesConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HugepagesConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HugepagesConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.LinuxNodeConfig.HugepagesConfig;

                    /**
                     * Decodes a HugepagesConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HugepagesConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.LinuxNodeConfig.HugepagesConfig;

                    /**
                     * Verifies a HugepagesConfig message.
                     * @param message Plain 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 HugepagesConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HugepagesConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.container.v1beta1.LinuxNodeConfig.HugepagesConfig;

                    /**
                     * Creates a plain object from a HugepagesConfig message. Also converts values to other types if specified.
                     * @param message HugepagesConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.container.v1beta1.LinuxNodeConfig.HugepagesConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HugepagesConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HugepagesConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** TransparentHugepageEnabled enum. */
                enum TransparentHugepageEnabled {
                    TRANSPARENT_HUGEPAGE_ENABLED_UNSPECIFIED = 0,
                    TRANSPARENT_HUGEPAGE_ENABLED_ALWAYS = 1,
                    TRANSPARENT_HUGEPAGE_ENABLED_MADVISE = 2,
                    TRANSPARENT_HUGEPAGE_ENABLED_NEVER = 3
                }

                /** TransparentHugepageDefrag enum. */
                enum TransparentHugepageDefrag {
                    TRANSPARENT_HUGEPAGE_DEFRAG_UNSPECIFIED = 0,
                    TRANSPARENT_HUGEPAGE_DEFRAG_ALWAYS = 1,
                    TRANSPARENT_HUGEPAGE_DEFRAG_DEFER = 2,
                    TRANSPARENT_HUGEPAGE_DEFRAG_DEFER_WITH_MADVISE = 3,
                    TRANSPARENT_HUGEPAGE_DEFRAG_MADVISE = 4,
                    TRANSPARENT_HUGEPAGE_DEFRAG_NEVER = 5
                }

                /** Properties of a CustomNodeInit. */
                interface ICustomNodeInit {

                    /** CustomNodeInit initScript */
                    initScript?: (google.container.v1beta1.LinuxNodeConfig.CustomNodeInit.IInitScript|null);
                }

                /** Represents a CustomNodeInit. */
                class CustomNodeInit implements ICustomNodeInit {

                    /**
                     * Constructs a new CustomNodeInit.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.container.v1beta1.LinuxNodeConfig.ICustomNodeInit);

                    /** CustomNodeInit initScript. */
                    public initScript?: (google.container.v1beta1.LinuxNodeConfig.CustomNodeInit.IInitScript|null);

                    /**
                     * Creates a new CustomNodeInit instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CustomNodeInit instance
                     */
                    public static create(properties?: google.container.v1beta1.LinuxNodeConfig.ICustomNodeInit): google.container.v1beta1.LinuxNodeConfig.CustomNodeInit;

                    /**
                     * Encodes the specified CustomNodeInit message. Does not implicitly {@link google.container.v1beta1.LinuxNodeConfig.CustomNodeInit.verify|verify} messages.
                     * @param message CustomNodeInit message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.container.v1beta1.LinuxNodeConfig.ICustomNodeInit, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CustomNodeInit message, length delimited. Does not implicitly {@link google.container.v1beta1.LinuxNodeConfig.CustomNodeInit.verify|verify} messages.
                     * @param message CustomNodeInit message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.container.v1beta1.LinuxNodeConfig.ICustomNodeInit, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CustomNodeInit message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CustomNodeInit
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.LinuxNodeConfig.CustomNodeInit;

                    /**
                     * Decodes a CustomNodeInit message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CustomNodeInit
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.LinuxNodeConfig.CustomNodeInit;

                    /**
                     * Verifies a CustomNodeInit message.
                     * @param message Plain 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 CustomNodeInit message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CustomNodeInit
                     */
                    public static fromObject(object: { [k: string]: any }): google.container.v1beta1.LinuxNodeConfig.CustomNodeInit;

                    /**
                     * Creates a plain object from a CustomNodeInit message. Also converts values to other types if specified.
                     * @param message CustomNodeInit
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.container.v1beta1.LinuxNodeConfig.CustomNodeInit, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CustomNodeInit to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CustomNodeInit
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace CustomNodeInit {

                    /** Properties of an InitScript. */
                    interface IInitScript {

                        /** InitScript gcsUri */
                        gcsUri?: (string|null);

                        /** InitScript gcsGeneration */
                        gcsGeneration?: (number|Long|string|null);

                        /** InitScript args */
                        args?: (string[]|null);

                        /** InitScript gcpSecretManagerSecretUri */
                        gcpSecretManagerSecretUri?: (string|null);
                    }

                    /** Represents an InitScript. */
                    class InitScript implements IInitScript {

                        /**
                         * Constructs a new InitScript.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.container.v1beta1.LinuxNodeConfig.CustomNodeInit.IInitScript);

                        /** InitScript gcsUri. */
                        public gcsUri: string;

                        /** InitScript gcsGeneration. */
                        public gcsGeneration: (number|Long|string);

                        /** InitScript args. */
                        public args: string[];

                        /** InitScript gcpSecretManagerSecretUri. */
                        public gcpSecretManagerSecretUri: string;

                        /**
                         * Creates a new InitScript instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns InitScript instance
                         */
                        public static create(properties?: google.container.v1beta1.LinuxNodeConfig.CustomNodeInit.IInitScript): google.container.v1beta1.LinuxNodeConfig.CustomNodeInit.InitScript;

                        /**
                         * Encodes the specified InitScript message. Does not implicitly {@link google.container.v1beta1.LinuxNodeConfig.CustomNodeInit.InitScript.verify|verify} messages.
                         * @param message InitScript message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.container.v1beta1.LinuxNodeConfig.CustomNodeInit.IInitScript, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified InitScript message, length delimited. Does not implicitly {@link google.container.v1beta1.LinuxNodeConfig.CustomNodeInit.InitScript.verify|verify} messages.
                         * @param message InitScript message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.container.v1beta1.LinuxNodeConfig.CustomNodeInit.IInitScript, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes an InitScript message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns InitScript
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.LinuxNodeConfig.CustomNodeInit.InitScript;

                        /**
                         * Decodes an InitScript message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns InitScript
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.LinuxNodeConfig.CustomNodeInit.InitScript;

                        /**
                         * Verifies an InitScript message.
                         * @param message Plain 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 InitScript message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns InitScript
                         */
                        public static fromObject(object: { [k: string]: any }): google.container.v1beta1.LinuxNodeConfig.CustomNodeInit.InitScript;

                        /**
                         * Creates a plain object from an InitScript message. Also converts values to other types if specified.
                         * @param message InitScript
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.container.v1beta1.LinuxNodeConfig.CustomNodeInit.InitScript, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this InitScript to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for InitScript
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }
                }

                /** Properties of a SwapConfig. */
                interface ISwapConfig {

                    /** SwapConfig enabled */
                    enabled?: (boolean|null);

                    /** SwapConfig encryptionConfig */
                    encryptionConfig?: (google.container.v1beta1.LinuxNodeConfig.SwapConfig.IEncryptionConfig|null);

                    /** SwapConfig bootDiskProfile */
                    bootDiskProfile?: (google.container.v1beta1.LinuxNodeConfig.SwapConfig.IBootDiskProfile|null);

                    /** SwapConfig ephemeralLocalSsdProfile */
                    ephemeralLocalSsdProfile?: (google.container.v1beta1.LinuxNodeConfig.SwapConfig.IEphemeralLocalSsdProfile|null);

                    /** SwapConfig dedicatedLocalSsdProfile */
                    dedicatedLocalSsdProfile?: (google.container.v1beta1.LinuxNodeConfig.SwapConfig.IDedicatedLocalSsdProfile|null);
                }

                /** Represents a SwapConfig. */
                class SwapConfig implements ISwapConfig {

                    /**
                     * Constructs a new SwapConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.container.v1beta1.LinuxNodeConfig.ISwapConfig);

                    /** SwapConfig enabled. */
                    public enabled?: (boolean|null);

                    /** SwapConfig encryptionConfig. */
                    public encryptionConfig?: (google.container.v1beta1.LinuxNodeConfig.SwapConfig.IEncryptionConfig|null);

                    /** SwapConfig bootDiskProfile. */
                    public bootDiskProfile?: (google.container.v1beta1.LinuxNodeConfig.SwapConfig.IBootDiskProfile|null);

                    /** SwapConfig ephemeralLocalSsdProfile. */
                    public ephemeralLocalSsdProfile?: (google.container.v1beta1.LinuxNodeConfig.SwapConfig.IEphemeralLocalSsdProfile|null);

                    /** SwapConfig dedicatedLocalSsdProfile. */
                    public dedicatedLocalSsdProfile?: (google.container.v1beta1.LinuxNodeConfig.SwapConfig.IDedicatedLocalSsdProfile|null);

                    /** SwapConfig performanceProfile. */
                    public performanceProfile?: ("bootDiskProfile"|"ephemeralLocalSsdProfile"|"dedicatedLocalSsdProfile");

                    /**
                     * Creates a new SwapConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SwapConfig instance
                     */
                    public static create(properties?: google.container.v1beta1.LinuxNodeConfig.ISwapConfig): google.container.v1beta1.LinuxNodeConfig.SwapConfig;

                    /**
                     * Encodes the specified SwapConfig message. Does not implicitly {@link google.container.v1beta1.LinuxNodeConfig.SwapConfig.verify|verify} messages.
                     * @param message SwapConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.container.v1beta1.LinuxNodeConfig.ISwapConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SwapConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.LinuxNodeConfig.SwapConfig.verify|verify} messages.
                     * @param message SwapConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.container.v1beta1.LinuxNodeConfig.ISwapConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SwapConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SwapConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.LinuxNodeConfig.SwapConfig;

                    /**
                     * Decodes a SwapConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SwapConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.LinuxNodeConfig.SwapConfig;

                    /**
                     * Verifies a SwapConfig message.
                     * @param message Plain 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 SwapConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SwapConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.container.v1beta1.LinuxNodeConfig.SwapConfig;

                    /**
                     * Creates a plain object from a SwapConfig message. Also converts values to other types if specified.
                     * @param message SwapConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.container.v1beta1.LinuxNodeConfig.SwapConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SwapConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SwapConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace SwapConfig {

                    /** Properties of an EncryptionConfig. */
                    interface IEncryptionConfig {

                        /** EncryptionConfig disabled */
                        disabled?: (boolean|null);
                    }

                    /** Represents an EncryptionConfig. */
                    class EncryptionConfig implements IEncryptionConfig {

                        /**
                         * Constructs a new EncryptionConfig.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.container.v1beta1.LinuxNodeConfig.SwapConfig.IEncryptionConfig);

                        /** EncryptionConfig disabled. */
                        public disabled?: (boolean|null);

                        /**
                         * Creates a new EncryptionConfig instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns EncryptionConfig instance
                         */
                        public static create(properties?: google.container.v1beta1.LinuxNodeConfig.SwapConfig.IEncryptionConfig): google.container.v1beta1.LinuxNodeConfig.SwapConfig.EncryptionConfig;

                        /**
                         * Encodes the specified EncryptionConfig message. Does not implicitly {@link google.container.v1beta1.LinuxNodeConfig.SwapConfig.EncryptionConfig.verify|verify} messages.
                         * @param message EncryptionConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.container.v1beta1.LinuxNodeConfig.SwapConfig.IEncryptionConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified EncryptionConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.LinuxNodeConfig.SwapConfig.EncryptionConfig.verify|verify} messages.
                         * @param message EncryptionConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.container.v1beta1.LinuxNodeConfig.SwapConfig.IEncryptionConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes an EncryptionConfig message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns EncryptionConfig
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.LinuxNodeConfig.SwapConfig.EncryptionConfig;

                        /**
                         * Decodes an EncryptionConfig message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns EncryptionConfig
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.LinuxNodeConfig.SwapConfig.EncryptionConfig;

                        /**
                         * Verifies an EncryptionConfig message.
                         * @param message Plain 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 EncryptionConfig message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns EncryptionConfig
                         */
                        public static fromObject(object: { [k: string]: any }): google.container.v1beta1.LinuxNodeConfig.SwapConfig.EncryptionConfig;

                        /**
                         * Creates a plain object from an EncryptionConfig message. Also converts values to other types if specified.
                         * @param message EncryptionConfig
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.container.v1beta1.LinuxNodeConfig.SwapConfig.EncryptionConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this EncryptionConfig to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for EncryptionConfig
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of a BootDiskProfile. */
                    interface IBootDiskProfile {

                        /** BootDiskProfile swapSizeGib */
                        swapSizeGib?: (number|Long|string|null);

                        /** BootDiskProfile swapSizePercent */
                        swapSizePercent?: (number|null);
                    }

                    /** Represents a BootDiskProfile. */
                    class BootDiskProfile implements IBootDiskProfile {

                        /**
                         * Constructs a new BootDiskProfile.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.container.v1beta1.LinuxNodeConfig.SwapConfig.IBootDiskProfile);

                        /** BootDiskProfile swapSizeGib. */
                        public swapSizeGib?: (number|Long|string|null);

                        /** BootDiskProfile swapSizePercent. */
                        public swapSizePercent?: (number|null);

                        /** BootDiskProfile swapSize. */
                        public swapSize?: ("swapSizeGib"|"swapSizePercent");

                        /**
                         * Creates a new BootDiskProfile instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns BootDiskProfile instance
                         */
                        public static create(properties?: google.container.v1beta1.LinuxNodeConfig.SwapConfig.IBootDiskProfile): google.container.v1beta1.LinuxNodeConfig.SwapConfig.BootDiskProfile;

                        /**
                         * Encodes the specified BootDiskProfile message. Does not implicitly {@link google.container.v1beta1.LinuxNodeConfig.SwapConfig.BootDiskProfile.verify|verify} messages.
                         * @param message BootDiskProfile message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.container.v1beta1.LinuxNodeConfig.SwapConfig.IBootDiskProfile, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified BootDiskProfile message, length delimited. Does not implicitly {@link google.container.v1beta1.LinuxNodeConfig.SwapConfig.BootDiskProfile.verify|verify} messages.
                         * @param message BootDiskProfile message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.container.v1beta1.LinuxNodeConfig.SwapConfig.IBootDiskProfile, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a BootDiskProfile message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns BootDiskProfile
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.LinuxNodeConfig.SwapConfig.BootDiskProfile;

                        /**
                         * Decodes a BootDiskProfile message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns BootDiskProfile
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.LinuxNodeConfig.SwapConfig.BootDiskProfile;

                        /**
                         * Verifies a BootDiskProfile message.
                         * @param message Plain 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 BootDiskProfile message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns BootDiskProfile
                         */
                        public static fromObject(object: { [k: string]: any }): google.container.v1beta1.LinuxNodeConfig.SwapConfig.BootDiskProfile;

                        /**
                         * Creates a plain object from a BootDiskProfile message. Also converts values to other types if specified.
                         * @param message BootDiskProfile
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.container.v1beta1.LinuxNodeConfig.SwapConfig.BootDiskProfile, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this BootDiskProfile to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for BootDiskProfile
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of an EphemeralLocalSsdProfile. */
                    interface IEphemeralLocalSsdProfile {

                        /** EphemeralLocalSsdProfile swapSizeGib */
                        swapSizeGib?: (number|Long|string|null);

                        /** EphemeralLocalSsdProfile swapSizePercent */
                        swapSizePercent?: (number|null);
                    }

                    /** Represents an EphemeralLocalSsdProfile. */
                    class EphemeralLocalSsdProfile implements IEphemeralLocalSsdProfile {

                        /**
                         * Constructs a new EphemeralLocalSsdProfile.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.container.v1beta1.LinuxNodeConfig.SwapConfig.IEphemeralLocalSsdProfile);

                        /** EphemeralLocalSsdProfile swapSizeGib. */
                        public swapSizeGib?: (number|Long|string|null);

                        /** EphemeralLocalSsdProfile swapSizePercent. */
                        public swapSizePercent?: (number|null);

                        /** EphemeralLocalSsdProfile swapSize. */
                        public swapSize?: ("swapSizeGib"|"swapSizePercent");

                        /**
                         * Creates a new EphemeralLocalSsdProfile instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns EphemeralLocalSsdProfile instance
                         */
                        public static create(properties?: google.container.v1beta1.LinuxNodeConfig.SwapConfig.IEphemeralLocalSsdProfile): google.container.v1beta1.LinuxNodeConfig.SwapConfig.EphemeralLocalSsdProfile;

                        /**
                         * Encodes the specified EphemeralLocalSsdProfile message. Does not implicitly {@link google.container.v1beta1.LinuxNodeConfig.SwapConfig.EphemeralLocalSsdProfile.verify|verify} messages.
                         * @param message EphemeralLocalSsdProfile message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.container.v1beta1.LinuxNodeConfig.SwapConfig.IEphemeralLocalSsdProfile, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified EphemeralLocalSsdProfile message, length delimited. Does not implicitly {@link google.container.v1beta1.LinuxNodeConfig.SwapConfig.EphemeralLocalSsdProfile.verify|verify} messages.
                         * @param message EphemeralLocalSsdProfile message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.container.v1beta1.LinuxNodeConfig.SwapConfig.IEphemeralLocalSsdProfile, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes an EphemeralLocalSsdProfile message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns EphemeralLocalSsdProfile
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.LinuxNodeConfig.SwapConfig.EphemeralLocalSsdProfile;

                        /**
                         * Decodes an EphemeralLocalSsdProfile message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns EphemeralLocalSsdProfile
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.LinuxNodeConfig.SwapConfig.EphemeralLocalSsdProfile;

                        /**
                         * Verifies an EphemeralLocalSsdProfile message.
                         * @param message Plain 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 EphemeralLocalSsdProfile message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns EphemeralLocalSsdProfile
                         */
                        public static fromObject(object: { [k: string]: any }): google.container.v1beta1.LinuxNodeConfig.SwapConfig.EphemeralLocalSsdProfile;

                        /**
                         * Creates a plain object from an EphemeralLocalSsdProfile message. Also converts values to other types if specified.
                         * @param message EphemeralLocalSsdProfile
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.container.v1beta1.LinuxNodeConfig.SwapConfig.EphemeralLocalSsdProfile, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this EphemeralLocalSsdProfile to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for EphemeralLocalSsdProfile
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of a DedicatedLocalSsdProfile. */
                    interface IDedicatedLocalSsdProfile {

                        /** DedicatedLocalSsdProfile diskCount */
                        diskCount?: (number|Long|string|null);
                    }

                    /** Represents a DedicatedLocalSsdProfile. */
                    class DedicatedLocalSsdProfile implements IDedicatedLocalSsdProfile {

                        /**
                         * Constructs a new DedicatedLocalSsdProfile.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.container.v1beta1.LinuxNodeConfig.SwapConfig.IDedicatedLocalSsdProfile);

                        /** DedicatedLocalSsdProfile diskCount. */
                        public diskCount: (number|Long|string);

                        /**
                         * Creates a new DedicatedLocalSsdProfile instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns DedicatedLocalSsdProfile instance
                         */
                        public static create(properties?: google.container.v1beta1.LinuxNodeConfig.SwapConfig.IDedicatedLocalSsdProfile): google.container.v1beta1.LinuxNodeConfig.SwapConfig.DedicatedLocalSsdProfile;

                        /**
                         * Encodes the specified DedicatedLocalSsdProfile message. Does not implicitly {@link google.container.v1beta1.LinuxNodeConfig.SwapConfig.DedicatedLocalSsdProfile.verify|verify} messages.
                         * @param message DedicatedLocalSsdProfile message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.container.v1beta1.LinuxNodeConfig.SwapConfig.IDedicatedLocalSsdProfile, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified DedicatedLocalSsdProfile message, length delimited. Does not implicitly {@link google.container.v1beta1.LinuxNodeConfig.SwapConfig.DedicatedLocalSsdProfile.verify|verify} messages.
                         * @param message DedicatedLocalSsdProfile message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.container.v1beta1.LinuxNodeConfig.SwapConfig.IDedicatedLocalSsdProfile, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a DedicatedLocalSsdProfile message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns DedicatedLocalSsdProfile
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.LinuxNodeConfig.SwapConfig.DedicatedLocalSsdProfile;

                        /**
                         * Decodes a DedicatedLocalSsdProfile message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns DedicatedLocalSsdProfile
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.LinuxNodeConfig.SwapConfig.DedicatedLocalSsdProfile;

                        /**
                         * Verifies a DedicatedLocalSsdProfile message.
                         * @param message Plain 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 DedicatedLocalSsdProfile message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns DedicatedLocalSsdProfile
                         */
                        public static fromObject(object: { [k: string]: any }): google.container.v1beta1.LinuxNodeConfig.SwapConfig.DedicatedLocalSsdProfile;

                        /**
                         * Creates a plain object from a DedicatedLocalSsdProfile message. Also converts values to other types if specified.
                         * @param message DedicatedLocalSsdProfile
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.container.v1beta1.LinuxNodeConfig.SwapConfig.DedicatedLocalSsdProfile, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this DedicatedLocalSsdProfile to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for DedicatedLocalSsdProfile
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }
                }

                /** Properties of a NodeKernelModuleLoading. */
                interface INodeKernelModuleLoading {

                    /** NodeKernelModuleLoading policy */
                    policy?: (google.container.v1beta1.LinuxNodeConfig.NodeKernelModuleLoading.Policy|keyof typeof google.container.v1beta1.LinuxNodeConfig.NodeKernelModuleLoading.Policy|null);
                }

                /** Represents a NodeKernelModuleLoading. */
                class NodeKernelModuleLoading implements INodeKernelModuleLoading {

                    /**
                     * Constructs a new NodeKernelModuleLoading.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.container.v1beta1.LinuxNodeConfig.INodeKernelModuleLoading);

                    /** NodeKernelModuleLoading policy. */
                    public policy: (google.container.v1beta1.LinuxNodeConfig.NodeKernelModuleLoading.Policy|keyof typeof google.container.v1beta1.LinuxNodeConfig.NodeKernelModuleLoading.Policy);

                    /**
                     * Creates a new NodeKernelModuleLoading instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NodeKernelModuleLoading instance
                     */
                    public static create(properties?: google.container.v1beta1.LinuxNodeConfig.INodeKernelModuleLoading): google.container.v1beta1.LinuxNodeConfig.NodeKernelModuleLoading;

                    /**
                     * Encodes the specified NodeKernelModuleLoading message. Does not implicitly {@link google.container.v1beta1.LinuxNodeConfig.NodeKernelModuleLoading.verify|verify} messages.
                     * @param message NodeKernelModuleLoading message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.container.v1beta1.LinuxNodeConfig.INodeKernelModuleLoading, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NodeKernelModuleLoading message, length delimited. Does not implicitly {@link google.container.v1beta1.LinuxNodeConfig.NodeKernelModuleLoading.verify|verify} messages.
                     * @param message NodeKernelModuleLoading message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.container.v1beta1.LinuxNodeConfig.INodeKernelModuleLoading, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NodeKernelModuleLoading message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NodeKernelModuleLoading
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.LinuxNodeConfig.NodeKernelModuleLoading;

                    /**
                     * Decodes a NodeKernelModuleLoading message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NodeKernelModuleLoading
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.LinuxNodeConfig.NodeKernelModuleLoading;

                    /**
                     * Verifies a NodeKernelModuleLoading message.
                     * @param message Plain 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 NodeKernelModuleLoading message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NodeKernelModuleLoading
                     */
                    public static fromObject(object: { [k: string]: any }): google.container.v1beta1.LinuxNodeConfig.NodeKernelModuleLoading;

                    /**
                     * Creates a plain object from a NodeKernelModuleLoading message. Also converts values to other types if specified.
                     * @param message NodeKernelModuleLoading
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.container.v1beta1.LinuxNodeConfig.NodeKernelModuleLoading, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NodeKernelModuleLoading to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NodeKernelModuleLoading
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace NodeKernelModuleLoading {

                    /** Policy enum. */
                    enum Policy {
                        POLICY_UNSPECIFIED = 0,
                        ENFORCE_SIGNED_MODULES = 1,
                        DO_NOT_ENFORCE_SIGNED_MODULES = 2
                    }
                }

                /** Properties of an AccurateTimeConfig. */
                interface IAccurateTimeConfig {

                    /** AccurateTimeConfig enablePtpKvmTimeSync */
                    enablePtpKvmTimeSync?: (boolean|null);
                }

                /** Represents an AccurateTimeConfig. */
                class AccurateTimeConfig implements IAccurateTimeConfig {

                    /**
                     * Constructs a new AccurateTimeConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.container.v1beta1.LinuxNodeConfig.IAccurateTimeConfig);

                    /** AccurateTimeConfig enablePtpKvmTimeSync. */
                    public enablePtpKvmTimeSync?: (boolean|null);

                    /**
                     * Creates a new AccurateTimeConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AccurateTimeConfig instance
                     */
                    public static create(properties?: google.container.v1beta1.LinuxNodeConfig.IAccurateTimeConfig): google.container.v1beta1.LinuxNodeConfig.AccurateTimeConfig;

                    /**
                     * Encodes the specified AccurateTimeConfig message. Does not implicitly {@link google.container.v1beta1.LinuxNodeConfig.AccurateTimeConfig.verify|verify} messages.
                     * @param message AccurateTimeConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.container.v1beta1.LinuxNodeConfig.IAccurateTimeConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AccurateTimeConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.LinuxNodeConfig.AccurateTimeConfig.verify|verify} messages.
                     * @param message AccurateTimeConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.container.v1beta1.LinuxNodeConfig.IAccurateTimeConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AccurateTimeConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AccurateTimeConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.LinuxNodeConfig.AccurateTimeConfig;

                    /**
                     * Decodes an AccurateTimeConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AccurateTimeConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.LinuxNodeConfig.AccurateTimeConfig;

                    /**
                     * Verifies an AccurateTimeConfig message.
                     * @param message Plain 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 AccurateTimeConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AccurateTimeConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.container.v1beta1.LinuxNodeConfig.AccurateTimeConfig;

                    /**
                     * Creates a plain object from an AccurateTimeConfig message. Also converts values to other types if specified.
                     * @param message AccurateTimeConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.container.v1beta1.LinuxNodeConfig.AccurateTimeConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AccurateTimeConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AccurateTimeConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }
            }

            /** Properties of a WindowsNodeConfig. */
            interface IWindowsNodeConfig {

                /** WindowsNodeConfig osVersion */
                osVersion?: (google.container.v1beta1.WindowsNodeConfig.OSVersion|keyof typeof google.container.v1beta1.WindowsNodeConfig.OSVersion|null);
            }

            /** Represents a WindowsNodeConfig. */
            class WindowsNodeConfig implements IWindowsNodeConfig {

                /**
                 * Constructs a new WindowsNodeConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IWindowsNodeConfig);

                /** WindowsNodeConfig osVersion. */
                public osVersion: (google.container.v1beta1.WindowsNodeConfig.OSVersion|keyof typeof google.container.v1beta1.WindowsNodeConfig.OSVersion);

                /**
                 * Creates a new WindowsNodeConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns WindowsNodeConfig instance
                 */
                public static create(properties?: google.container.v1beta1.IWindowsNodeConfig): google.container.v1beta1.WindowsNodeConfig;

                /**
                 * Encodes the specified WindowsNodeConfig message. Does not implicitly {@link google.container.v1beta1.WindowsNodeConfig.verify|verify} messages.
                 * @param message WindowsNodeConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IWindowsNodeConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified WindowsNodeConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.WindowsNodeConfig.verify|verify} messages.
                 * @param message WindowsNodeConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IWindowsNodeConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a WindowsNodeConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns WindowsNodeConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.WindowsNodeConfig;

                /**
                 * Decodes a WindowsNodeConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns WindowsNodeConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.WindowsNodeConfig;

                /**
                 * Verifies a WindowsNodeConfig message.
                 * @param message Plain 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 WindowsNodeConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns WindowsNodeConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.WindowsNodeConfig;

                /**
                 * Creates a plain object from a WindowsNodeConfig message. Also converts values to other types if specified.
                 * @param message WindowsNodeConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.WindowsNodeConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this WindowsNodeConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for WindowsNodeConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace WindowsNodeConfig {

                /** OSVersion enum. */
                enum OSVersion {
                    OS_VERSION_UNSPECIFIED = 0,
                    OS_VERSION_LTSC2019 = 1,
                    OS_VERSION_LTSC2022 = 2
                }
            }

            /** Properties of a NodeKubeletConfig. */
            interface INodeKubeletConfig {

                /** NodeKubeletConfig cpuManagerPolicy */
                cpuManagerPolicy?: (string|null);

                /** NodeKubeletConfig topologyManager */
                topologyManager?: (google.container.v1beta1.ITopologyManager|null);

                /** NodeKubeletConfig memoryManager */
                memoryManager?: (google.container.v1beta1.IMemoryManager|null);

                /** NodeKubeletConfig cpuCfsQuota */
                cpuCfsQuota?: (google.protobuf.IBoolValue|null);

                /** NodeKubeletConfig cpuCfsQuotaPeriod */
                cpuCfsQuotaPeriod?: (string|null);

                /** NodeKubeletConfig podPidsLimit */
                podPidsLimit?: (number|Long|string|null);

                /** NodeKubeletConfig insecureKubeletReadonlyPortEnabled */
                insecureKubeletReadonlyPortEnabled?: (boolean|null);

                /** NodeKubeletConfig imageGcLowThresholdPercent */
                imageGcLowThresholdPercent?: (number|null);

                /** NodeKubeletConfig imageGcHighThresholdPercent */
                imageGcHighThresholdPercent?: (number|null);

                /** NodeKubeletConfig imageMinimumGcAge */
                imageMinimumGcAge?: (string|null);

                /** NodeKubeletConfig imageMaximumGcAge */
                imageMaximumGcAge?: (string|null);

                /** NodeKubeletConfig containerLogMaxSize */
                containerLogMaxSize?: (string|null);

                /** NodeKubeletConfig containerLogMaxFiles */
                containerLogMaxFiles?: (number|null);

                /** NodeKubeletConfig allowedUnsafeSysctls */
                allowedUnsafeSysctls?: (string[]|null);

                /** NodeKubeletConfig evictionSoft */
                evictionSoft?: (google.container.v1beta1.IEvictionSignals|null);

                /** NodeKubeletConfig evictionSoftGracePeriod */
                evictionSoftGracePeriod?: (google.container.v1beta1.IEvictionGracePeriod|null);

                /** NodeKubeletConfig evictionMinimumReclaim */
                evictionMinimumReclaim?: (google.container.v1beta1.IEvictionMinimumReclaim|null);

                /** NodeKubeletConfig evictionMaxPodGracePeriodSeconds */
                evictionMaxPodGracePeriodSeconds?: (number|null);

                /** NodeKubeletConfig maxParallelImagePulls */
                maxParallelImagePulls?: (number|null);

                /** NodeKubeletConfig singleProcessOomKill */
                singleProcessOomKill?: (boolean|null);

                /** NodeKubeletConfig crashLoopBackOff */
                crashLoopBackOff?: (google.container.v1beta1.NodeKubeletConfig.ICrashLoopBackOffConfig|null);

                /** NodeKubeletConfig shutdownGracePeriodSeconds */
                shutdownGracePeriodSeconds?: (number|null);

                /** NodeKubeletConfig shutdownGracePeriodCriticalPodsSeconds */
                shutdownGracePeriodCriticalPodsSeconds?: (number|null);
            }

            /** Represents a NodeKubeletConfig. */
            class NodeKubeletConfig implements INodeKubeletConfig {

                /**
                 * Constructs a new NodeKubeletConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.INodeKubeletConfig);

                /** NodeKubeletConfig cpuManagerPolicy. */
                public cpuManagerPolicy: string;

                /** NodeKubeletConfig topologyManager. */
                public topologyManager?: (google.container.v1beta1.ITopologyManager|null);

                /** NodeKubeletConfig memoryManager. */
                public memoryManager?: (google.container.v1beta1.IMemoryManager|null);

                /** NodeKubeletConfig cpuCfsQuota. */
                public cpuCfsQuota?: (google.protobuf.IBoolValue|null);

                /** NodeKubeletConfig cpuCfsQuotaPeriod. */
                public cpuCfsQuotaPeriod: string;

                /** NodeKubeletConfig podPidsLimit. */
                public podPidsLimit: (number|Long|string);

                /** NodeKubeletConfig insecureKubeletReadonlyPortEnabled. */
                public insecureKubeletReadonlyPortEnabled?: (boolean|null);

                /** NodeKubeletConfig imageGcLowThresholdPercent. */
                public imageGcLowThresholdPercent: number;

                /** NodeKubeletConfig imageGcHighThresholdPercent. */
                public imageGcHighThresholdPercent: number;

                /** NodeKubeletConfig imageMinimumGcAge. */
                public imageMinimumGcAge: string;

                /** NodeKubeletConfig imageMaximumGcAge. */
                public imageMaximumGcAge: string;

                /** NodeKubeletConfig containerLogMaxSize. */
                public containerLogMaxSize: string;

                /** NodeKubeletConfig containerLogMaxFiles. */
                public containerLogMaxFiles: number;

                /** NodeKubeletConfig allowedUnsafeSysctls. */
                public allowedUnsafeSysctls: string[];

                /** NodeKubeletConfig evictionSoft. */
                public evictionSoft?: (google.container.v1beta1.IEvictionSignals|null);

                /** NodeKubeletConfig evictionSoftGracePeriod. */
                public evictionSoftGracePeriod?: (google.container.v1beta1.IEvictionGracePeriod|null);

                /** NodeKubeletConfig evictionMinimumReclaim. */
                public evictionMinimumReclaim?: (google.container.v1beta1.IEvictionMinimumReclaim|null);

                /** NodeKubeletConfig evictionMaxPodGracePeriodSeconds. */
                public evictionMaxPodGracePeriodSeconds: number;

                /** NodeKubeletConfig maxParallelImagePulls. */
                public maxParallelImagePulls: number;

                /** NodeKubeletConfig singleProcessOomKill. */
                public singleProcessOomKill?: (boolean|null);

                /** NodeKubeletConfig crashLoopBackOff. */
                public crashLoopBackOff?: (google.container.v1beta1.NodeKubeletConfig.ICrashLoopBackOffConfig|null);

                /** NodeKubeletConfig shutdownGracePeriodSeconds. */
                public shutdownGracePeriodSeconds?: (number|null);

                /** NodeKubeletConfig shutdownGracePeriodCriticalPodsSeconds. */
                public shutdownGracePeriodCriticalPodsSeconds?: (number|null);

                /**
                 * Creates a new NodeKubeletConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns NodeKubeletConfig instance
                 */
                public static create(properties?: google.container.v1beta1.INodeKubeletConfig): google.container.v1beta1.NodeKubeletConfig;

                /**
                 * Encodes the specified NodeKubeletConfig message. Does not implicitly {@link google.container.v1beta1.NodeKubeletConfig.verify|verify} messages.
                 * @param message NodeKubeletConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.INodeKubeletConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified NodeKubeletConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.NodeKubeletConfig.verify|verify} messages.
                 * @param message NodeKubeletConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.INodeKubeletConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a NodeKubeletConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns NodeKubeletConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.NodeKubeletConfig;

                /**
                 * Decodes a NodeKubeletConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns NodeKubeletConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.NodeKubeletConfig;

                /**
                 * Verifies a NodeKubeletConfig message.
                 * @param message Plain 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 NodeKubeletConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns NodeKubeletConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.NodeKubeletConfig;

                /**
                 * Creates a plain object from a NodeKubeletConfig message. Also converts values to other types if specified.
                 * @param message NodeKubeletConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.NodeKubeletConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this NodeKubeletConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for NodeKubeletConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace NodeKubeletConfig {

                /** Properties of a CrashLoopBackOffConfig. */
                interface ICrashLoopBackOffConfig {

                    /** CrashLoopBackOffConfig maxContainerRestartPeriod */
                    maxContainerRestartPeriod?: (string|null);
                }

                /** Represents a CrashLoopBackOffConfig. */
                class CrashLoopBackOffConfig implements ICrashLoopBackOffConfig {

                    /**
                     * Constructs a new CrashLoopBackOffConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.container.v1beta1.NodeKubeletConfig.ICrashLoopBackOffConfig);

                    /** CrashLoopBackOffConfig maxContainerRestartPeriod. */
                    public maxContainerRestartPeriod: string;

                    /**
                     * Creates a new CrashLoopBackOffConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CrashLoopBackOffConfig instance
                     */
                    public static create(properties?: google.container.v1beta1.NodeKubeletConfig.ICrashLoopBackOffConfig): google.container.v1beta1.NodeKubeletConfig.CrashLoopBackOffConfig;

                    /**
                     * Encodes the specified CrashLoopBackOffConfig message. Does not implicitly {@link google.container.v1beta1.NodeKubeletConfig.CrashLoopBackOffConfig.verify|verify} messages.
                     * @param message CrashLoopBackOffConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.container.v1beta1.NodeKubeletConfig.ICrashLoopBackOffConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CrashLoopBackOffConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.NodeKubeletConfig.CrashLoopBackOffConfig.verify|verify} messages.
                     * @param message CrashLoopBackOffConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.container.v1beta1.NodeKubeletConfig.ICrashLoopBackOffConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CrashLoopBackOffConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CrashLoopBackOffConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.NodeKubeletConfig.CrashLoopBackOffConfig;

                    /**
                     * Decodes a CrashLoopBackOffConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CrashLoopBackOffConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.NodeKubeletConfig.CrashLoopBackOffConfig;

                    /**
                     * Verifies a CrashLoopBackOffConfig message.
                     * @param message Plain 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 CrashLoopBackOffConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CrashLoopBackOffConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.container.v1beta1.NodeKubeletConfig.CrashLoopBackOffConfig;

                    /**
                     * Creates a plain object from a CrashLoopBackOffConfig message. Also converts values to other types if specified.
                     * @param message CrashLoopBackOffConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.container.v1beta1.NodeKubeletConfig.CrashLoopBackOffConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CrashLoopBackOffConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CrashLoopBackOffConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }
            }

            /** Properties of a TopologyManager. */
            interface ITopologyManager {

                /** TopologyManager policy */
                policy?: (string|null);

                /** TopologyManager scope */
                scope?: (string|null);
            }

            /** Represents a TopologyManager. */
            class TopologyManager implements ITopologyManager {

                /**
                 * Constructs a new TopologyManager.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.ITopologyManager);

                /** TopologyManager policy. */
                public policy: string;

                /** TopologyManager scope. */
                public scope: string;

                /**
                 * Creates a new TopologyManager instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns TopologyManager instance
                 */
                public static create(properties?: google.container.v1beta1.ITopologyManager): google.container.v1beta1.TopologyManager;

                /**
                 * Encodes the specified TopologyManager message. Does not implicitly {@link google.container.v1beta1.TopologyManager.verify|verify} messages.
                 * @param message TopologyManager message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.ITopologyManager, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified TopologyManager message, length delimited. Does not implicitly {@link google.container.v1beta1.TopologyManager.verify|verify} messages.
                 * @param message TopologyManager message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.ITopologyManager, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a TopologyManager message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns TopologyManager
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.TopologyManager;

                /**
                 * Decodes a TopologyManager message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns TopologyManager
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.TopologyManager;

                /**
                 * Verifies a TopologyManager message.
                 * @param message Plain 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 TopologyManager message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns TopologyManager
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.TopologyManager;

                /**
                 * Creates a plain object from a TopologyManager message. Also converts values to other types if specified.
                 * @param message TopologyManager
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.TopologyManager, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this TopologyManager to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for TopologyManager
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a MemoryManager. */
            interface IMemoryManager {

                /** MemoryManager policy */
                policy?: (string|null);
            }

            /** Represents a MemoryManager. */
            class MemoryManager implements IMemoryManager {

                /**
                 * Constructs a new MemoryManager.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IMemoryManager);

                /** MemoryManager policy. */
                public policy: string;

                /**
                 * Creates a new MemoryManager instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns MemoryManager instance
                 */
                public static create(properties?: google.container.v1beta1.IMemoryManager): google.container.v1beta1.MemoryManager;

                /**
                 * Encodes the specified MemoryManager message. Does not implicitly {@link google.container.v1beta1.MemoryManager.verify|verify} messages.
                 * @param message MemoryManager message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IMemoryManager, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified MemoryManager message, length delimited. Does not implicitly {@link google.container.v1beta1.MemoryManager.verify|verify} messages.
                 * @param message MemoryManager message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IMemoryManager, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a MemoryManager message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns MemoryManager
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.MemoryManager;

                /**
                 * Decodes a MemoryManager message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns MemoryManager
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.MemoryManager;

                /**
                 * Verifies a MemoryManager message.
                 * @param message Plain 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 MemoryManager message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns MemoryManager
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.MemoryManager;

                /**
                 * Creates a plain object from a MemoryManager message. Also converts values to other types if specified.
                 * @param message MemoryManager
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.MemoryManager, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this MemoryManager to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for MemoryManager
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of an EvictionSignals. */
            interface IEvictionSignals {

                /** EvictionSignals memoryAvailable */
                memoryAvailable?: (string|null);

                /** EvictionSignals nodefsAvailable */
                nodefsAvailable?: (string|null);

                /** EvictionSignals nodefsInodesFree */
                nodefsInodesFree?: (string|null);

                /** EvictionSignals imagefsAvailable */
                imagefsAvailable?: (string|null);

                /** EvictionSignals imagefsInodesFree */
                imagefsInodesFree?: (string|null);

                /** EvictionSignals pidAvailable */
                pidAvailable?: (string|null);
            }

            /** Represents an EvictionSignals. */
            class EvictionSignals implements IEvictionSignals {

                /**
                 * Constructs a new EvictionSignals.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IEvictionSignals);

                /** EvictionSignals memoryAvailable. */
                public memoryAvailable: string;

                /** EvictionSignals nodefsAvailable. */
                public nodefsAvailable: string;

                /** EvictionSignals nodefsInodesFree. */
                public nodefsInodesFree: string;

                /** EvictionSignals imagefsAvailable. */
                public imagefsAvailable: string;

                /** EvictionSignals imagefsInodesFree. */
                public imagefsInodesFree: string;

                /** EvictionSignals pidAvailable. */
                public pidAvailable: string;

                /**
                 * Creates a new EvictionSignals instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns EvictionSignals instance
                 */
                public static create(properties?: google.container.v1beta1.IEvictionSignals): google.container.v1beta1.EvictionSignals;

                /**
                 * Encodes the specified EvictionSignals message. Does not implicitly {@link google.container.v1beta1.EvictionSignals.verify|verify} messages.
                 * @param message EvictionSignals message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IEvictionSignals, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified EvictionSignals message, length delimited. Does not implicitly {@link google.container.v1beta1.EvictionSignals.verify|verify} messages.
                 * @param message EvictionSignals message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IEvictionSignals, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes an EvictionSignals message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns EvictionSignals
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.EvictionSignals;

                /**
                 * Decodes an EvictionSignals message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns EvictionSignals
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.EvictionSignals;

                /**
                 * Verifies an EvictionSignals message.
                 * @param message Plain 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 EvictionSignals message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns EvictionSignals
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.EvictionSignals;

                /**
                 * Creates a plain object from an EvictionSignals message. Also converts values to other types if specified.
                 * @param message EvictionSignals
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.EvictionSignals, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this EvictionSignals to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for EvictionSignals
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of an EvictionGracePeriod. */
            interface IEvictionGracePeriod {

                /** EvictionGracePeriod memoryAvailable */
                memoryAvailable?: (string|null);

                /** EvictionGracePeriod nodefsAvailable */
                nodefsAvailable?: (string|null);

                /** EvictionGracePeriod nodefsInodesFree */
                nodefsInodesFree?: (string|null);

                /** EvictionGracePeriod imagefsAvailable */
                imagefsAvailable?: (string|null);

                /** EvictionGracePeriod imagefsInodesFree */
                imagefsInodesFree?: (string|null);

                /** EvictionGracePeriod pidAvailable */
                pidAvailable?: (string|null);
            }

            /** Represents an EvictionGracePeriod. */
            class EvictionGracePeriod implements IEvictionGracePeriod {

                /**
                 * Constructs a new EvictionGracePeriod.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IEvictionGracePeriod);

                /** EvictionGracePeriod memoryAvailable. */
                public memoryAvailable: string;

                /** EvictionGracePeriod nodefsAvailable. */
                public nodefsAvailable: string;

                /** EvictionGracePeriod nodefsInodesFree. */
                public nodefsInodesFree: string;

                /** EvictionGracePeriod imagefsAvailable. */
                public imagefsAvailable: string;

                /** EvictionGracePeriod imagefsInodesFree. */
                public imagefsInodesFree: string;

                /** EvictionGracePeriod pidAvailable. */
                public pidAvailable: string;

                /**
                 * Creates a new EvictionGracePeriod instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns EvictionGracePeriod instance
                 */
                public static create(properties?: google.container.v1beta1.IEvictionGracePeriod): google.container.v1beta1.EvictionGracePeriod;

                /**
                 * Encodes the specified EvictionGracePeriod message. Does not implicitly {@link google.container.v1beta1.EvictionGracePeriod.verify|verify} messages.
                 * @param message EvictionGracePeriod message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IEvictionGracePeriod, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified EvictionGracePeriod message, length delimited. Does not implicitly {@link google.container.v1beta1.EvictionGracePeriod.verify|verify} messages.
                 * @param message EvictionGracePeriod message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IEvictionGracePeriod, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes an EvictionGracePeriod message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns EvictionGracePeriod
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.EvictionGracePeriod;

                /**
                 * Decodes an EvictionGracePeriod message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns EvictionGracePeriod
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.EvictionGracePeriod;

                /**
                 * Verifies an EvictionGracePeriod message.
                 * @param message Plain 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 EvictionGracePeriod message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns EvictionGracePeriod
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.EvictionGracePeriod;

                /**
                 * Creates a plain object from an EvictionGracePeriod message. Also converts values to other types if specified.
                 * @param message EvictionGracePeriod
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.EvictionGracePeriod, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this EvictionGracePeriod to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for EvictionGracePeriod
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of an EvictionMinimumReclaim. */
            interface IEvictionMinimumReclaim {

                /** EvictionMinimumReclaim memoryAvailable */
                memoryAvailable?: (string|null);

                /** EvictionMinimumReclaim nodefsAvailable */
                nodefsAvailable?: (string|null);

                /** EvictionMinimumReclaim nodefsInodesFree */
                nodefsInodesFree?: (string|null);

                /** EvictionMinimumReclaim imagefsAvailable */
                imagefsAvailable?: (string|null);

                /** EvictionMinimumReclaim imagefsInodesFree */
                imagefsInodesFree?: (string|null);

                /** EvictionMinimumReclaim pidAvailable */
                pidAvailable?: (string|null);
            }

            /** Represents an EvictionMinimumReclaim. */
            class EvictionMinimumReclaim implements IEvictionMinimumReclaim {

                /**
                 * Constructs a new EvictionMinimumReclaim.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IEvictionMinimumReclaim);

                /** EvictionMinimumReclaim memoryAvailable. */
                public memoryAvailable: string;

                /** EvictionMinimumReclaim nodefsAvailable. */
                public nodefsAvailable: string;

                /** EvictionMinimumReclaim nodefsInodesFree. */
                public nodefsInodesFree: string;

                /** EvictionMinimumReclaim imagefsAvailable. */
                public imagefsAvailable: string;

                /** EvictionMinimumReclaim imagefsInodesFree. */
                public imagefsInodesFree: string;

                /** EvictionMinimumReclaim pidAvailable. */
                public pidAvailable: string;

                /**
                 * Creates a new EvictionMinimumReclaim instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns EvictionMinimumReclaim instance
                 */
                public static create(properties?: google.container.v1beta1.IEvictionMinimumReclaim): google.container.v1beta1.EvictionMinimumReclaim;

                /**
                 * Encodes the specified EvictionMinimumReclaim message. Does not implicitly {@link google.container.v1beta1.EvictionMinimumReclaim.verify|verify} messages.
                 * @param message EvictionMinimumReclaim message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IEvictionMinimumReclaim, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified EvictionMinimumReclaim message, length delimited. Does not implicitly {@link google.container.v1beta1.EvictionMinimumReclaim.verify|verify} messages.
                 * @param message EvictionMinimumReclaim message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IEvictionMinimumReclaim, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes an EvictionMinimumReclaim message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns EvictionMinimumReclaim
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.EvictionMinimumReclaim;

                /**
                 * Decodes an EvictionMinimumReclaim message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns EvictionMinimumReclaim
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.EvictionMinimumReclaim;

                /**
                 * Verifies an EvictionMinimumReclaim message.
                 * @param message Plain 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 EvictionMinimumReclaim message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns EvictionMinimumReclaim
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.EvictionMinimumReclaim;

                /**
                 * Creates a plain object from an EvictionMinimumReclaim message. Also converts values to other types if specified.
                 * @param message EvictionMinimumReclaim
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.EvictionMinimumReclaim, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this EvictionMinimumReclaim to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for EvictionMinimumReclaim
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a NodeConfig. */
            interface INodeConfig {

                /** NodeConfig machineType */
                machineType?: (string|null);

                /** NodeConfig diskSizeGb */
                diskSizeGb?: (number|null);

                /** NodeConfig oauthScopes */
                oauthScopes?: (string[]|null);

                /** NodeConfig serviceAccount */
                serviceAccount?: (string|null);

                /** NodeConfig metadata */
                metadata?: ({ [k: string]: string }|null);

                /** NodeConfig imageType */
                imageType?: (string|null);

                /** NodeConfig labels */
                labels?: ({ [k: string]: string }|null);

                /** NodeConfig localSsdCount */
                localSsdCount?: (number|null);

                /** NodeConfig tags */
                tags?: (string[]|null);

                /** NodeConfig preemptible */
                preemptible?: (boolean|null);

                /** NodeConfig accelerators */
                accelerators?: (google.container.v1beta1.IAcceleratorConfig[]|null);

                /** NodeConfig sandboxConfig */
                sandboxConfig?: (google.container.v1beta1.ISandboxConfig|null);

                /** NodeConfig nodeGroup */
                nodeGroup?: (string|null);

                /** NodeConfig reservationAffinity */
                reservationAffinity?: (google.container.v1beta1.IReservationAffinity|null);

                /** NodeConfig diskType */
                diskType?: (string|null);

                /** NodeConfig minCpuPlatform */
                minCpuPlatform?: (string|null);

                /** NodeConfig workloadMetadataConfig */
                workloadMetadataConfig?: (google.container.v1beta1.IWorkloadMetadataConfig|null);

                /** NodeConfig taints */
                taints?: (google.container.v1beta1.INodeTaint[]|null);

                /** NodeConfig bootDiskKmsKey */
                bootDiskKmsKey?: (string|null);

                /** NodeConfig shieldedInstanceConfig */
                shieldedInstanceConfig?: (google.container.v1beta1.IShieldedInstanceConfig|null);

                /** NodeConfig linuxNodeConfig */
                linuxNodeConfig?: (google.container.v1beta1.ILinuxNodeConfig|null);

                /** NodeConfig kubeletConfig */
                kubeletConfig?: (google.container.v1beta1.INodeKubeletConfig|null);

                /** NodeConfig ephemeralStorageConfig */
                ephemeralStorageConfig?: (google.container.v1beta1.IEphemeralStorageConfig|null);

                /** NodeConfig gcfsConfig */
                gcfsConfig?: (google.container.v1beta1.IGcfsConfig|null);

                /** NodeConfig advancedMachineFeatures */
                advancedMachineFeatures?: (google.container.v1beta1.IAdvancedMachineFeatures|null);

                /** NodeConfig gvnic */
                gvnic?: (google.container.v1beta1.IVirtualNIC|null);

                /** NodeConfig spot */
                spot?: (boolean|null);

                /** NodeConfig confidentialNodes */
                confidentialNodes?: (google.container.v1beta1.IConfidentialNodes|null);

                /** NodeConfig fastSocket */
                fastSocket?: (google.container.v1beta1.IFastSocket|null);

                /** NodeConfig resourceLabels */
                resourceLabels?: ({ [k: string]: string }|null);

                /** NodeConfig loggingConfig */
                loggingConfig?: (google.container.v1beta1.INodePoolLoggingConfig|null);

                /** NodeConfig windowsNodeConfig */
                windowsNodeConfig?: (google.container.v1beta1.IWindowsNodeConfig|null);

                /** NodeConfig localNvmeSsdBlockConfig */
                localNvmeSsdBlockConfig?: (google.container.v1beta1.ILocalNvmeSsdBlockConfig|null);

                /** NodeConfig ephemeralStorageLocalSsdConfig */
                ephemeralStorageLocalSsdConfig?: (google.container.v1beta1.IEphemeralStorageLocalSsdConfig|null);

                /** NodeConfig soleTenantConfig */
                soleTenantConfig?: (google.container.v1beta1.ISoleTenantConfig|null);

                /** NodeConfig containerdConfig */
                containerdConfig?: (google.container.v1beta1.IContainerdConfig|null);

                /** NodeConfig hostMaintenancePolicy */
                hostMaintenancePolicy?: (google.container.v1beta1.IHostMaintenancePolicy|null);

                /** NodeConfig resourceManagerTags */
                resourceManagerTags?: (google.container.v1beta1.IResourceManagerTags|null);

                /** NodeConfig enableConfidentialStorage */
                enableConfidentialStorage?: (boolean|null);

                /** NodeConfig secondaryBootDisks */
                secondaryBootDisks?: (google.container.v1beta1.ISecondaryBootDisk[]|null);

                /** NodeConfig storagePools */
                storagePools?: (string[]|null);

                /** NodeConfig secondaryBootDiskUpdateStrategy */
                secondaryBootDiskUpdateStrategy?: (google.container.v1beta1.ISecondaryBootDiskUpdateStrategy|null);

                /** NodeConfig gpuDirectConfig */
                gpuDirectConfig?: (google.container.v1beta1.IGPUDirectConfig|null);

                /** NodeConfig maxRunDuration */
                maxRunDuration?: (google.protobuf.IDuration|null);

                /** NodeConfig localSsdEncryptionMode */
                localSsdEncryptionMode?: (google.container.v1beta1.NodeConfig.LocalSsdEncryptionMode|keyof typeof google.container.v1beta1.NodeConfig.LocalSsdEncryptionMode|null);

                /** NodeConfig effectiveCgroupMode */
                effectiveCgroupMode?: (google.container.v1beta1.NodeConfig.EffectiveCgroupMode|keyof typeof google.container.v1beta1.NodeConfig.EffectiveCgroupMode|null);

                /** NodeConfig flexStart */
                flexStart?: (boolean|null);

                /** NodeConfig bootDisk */
                bootDisk?: (google.container.v1beta1.IBootDisk|null);

                /** NodeConfig consolidationDelay */
                consolidationDelay?: (google.protobuf.IDuration|null);

                /** NodeConfig taintConfig */
                taintConfig?: (google.container.v1beta1.ITaintConfig|null);
            }

            /** Represents a NodeConfig. */
            class NodeConfig implements INodeConfig {

                /**
                 * Constructs a new NodeConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.INodeConfig);

                /** NodeConfig machineType. */
                public machineType: string;

                /** NodeConfig diskSizeGb. */
                public diskSizeGb: number;

                /** NodeConfig oauthScopes. */
                public oauthScopes: string[];

                /** NodeConfig serviceAccount. */
                public serviceAccount: string;

                /** NodeConfig metadata. */
                public metadata: { [k: string]: string };

                /** NodeConfig imageType. */
                public imageType: string;

                /** NodeConfig labels. */
                public labels: { [k: string]: string };

                /** NodeConfig localSsdCount. */
                public localSsdCount: number;

                /** NodeConfig tags. */
                public tags: string[];

                /** NodeConfig preemptible. */
                public preemptible: boolean;

                /** NodeConfig accelerators. */
                public accelerators: google.container.v1beta1.IAcceleratorConfig[];

                /** NodeConfig sandboxConfig. */
                public sandboxConfig?: (google.container.v1beta1.ISandboxConfig|null);

                /** NodeConfig nodeGroup. */
                public nodeGroup: string;

                /** NodeConfig reservationAffinity. */
                public reservationAffinity?: (google.container.v1beta1.IReservationAffinity|null);

                /** NodeConfig diskType. */
                public diskType: string;

                /** NodeConfig minCpuPlatform. */
                public minCpuPlatform: string;

                /** NodeConfig workloadMetadataConfig. */
                public workloadMetadataConfig?: (google.container.v1beta1.IWorkloadMetadataConfig|null);

                /** NodeConfig taints. */
                public taints: google.container.v1beta1.INodeTaint[];

                /** NodeConfig bootDiskKmsKey. */
                public bootDiskKmsKey: string;

                /** NodeConfig shieldedInstanceConfig. */
                public shieldedInstanceConfig?: (google.container.v1beta1.IShieldedInstanceConfig|null);

                /** NodeConfig linuxNodeConfig. */
                public linuxNodeConfig?: (google.container.v1beta1.ILinuxNodeConfig|null);

                /** NodeConfig kubeletConfig. */
                public kubeletConfig?: (google.container.v1beta1.INodeKubeletConfig|null);

                /** NodeConfig ephemeralStorageConfig. */
                public ephemeralStorageConfig?: (google.container.v1beta1.IEphemeralStorageConfig|null);

                /** NodeConfig gcfsConfig. */
                public gcfsConfig?: (google.container.v1beta1.IGcfsConfig|null);

                /** NodeConfig advancedMachineFeatures. */
                public advancedMachineFeatures?: (google.container.v1beta1.IAdvancedMachineFeatures|null);

                /** NodeConfig gvnic. */
                public gvnic?: (google.container.v1beta1.IVirtualNIC|null);

                /** NodeConfig spot. */
                public spot: boolean;

                /** NodeConfig confidentialNodes. */
                public confidentialNodes?: (google.container.v1beta1.IConfidentialNodes|null);

                /** NodeConfig fastSocket. */
                public fastSocket?: (google.container.v1beta1.IFastSocket|null);

                /** NodeConfig resourceLabels. */
                public resourceLabels: { [k: string]: string };

                /** NodeConfig loggingConfig. */
                public loggingConfig?: (google.container.v1beta1.INodePoolLoggingConfig|null);

                /** NodeConfig windowsNodeConfig. */
                public windowsNodeConfig?: (google.container.v1beta1.IWindowsNodeConfig|null);

                /** NodeConfig localNvmeSsdBlockConfig. */
                public localNvmeSsdBlockConfig?: (google.container.v1beta1.ILocalNvmeSsdBlockConfig|null);

                /** NodeConfig ephemeralStorageLocalSsdConfig. */
                public ephemeralStorageLocalSsdConfig?: (google.container.v1beta1.IEphemeralStorageLocalSsdConfig|null);

                /** NodeConfig soleTenantConfig. */
                public soleTenantConfig?: (google.container.v1beta1.ISoleTenantConfig|null);

                /** NodeConfig containerdConfig. */
                public containerdConfig?: (google.container.v1beta1.IContainerdConfig|null);

                /** NodeConfig hostMaintenancePolicy. */
                public hostMaintenancePolicy?: (google.container.v1beta1.IHostMaintenancePolicy|null);

                /** NodeConfig resourceManagerTags. */
                public resourceManagerTags?: (google.container.v1beta1.IResourceManagerTags|null);

                /** NodeConfig enableConfidentialStorage. */
                public enableConfidentialStorage: boolean;

                /** NodeConfig secondaryBootDisks. */
                public secondaryBootDisks: google.container.v1beta1.ISecondaryBootDisk[];

                /** NodeConfig storagePools. */
                public storagePools: string[];

                /** NodeConfig secondaryBootDiskUpdateStrategy. */
                public secondaryBootDiskUpdateStrategy?: (google.container.v1beta1.ISecondaryBootDiskUpdateStrategy|null);

                /** NodeConfig gpuDirectConfig. */
                public gpuDirectConfig?: (google.container.v1beta1.IGPUDirectConfig|null);

                /** NodeConfig maxRunDuration. */
                public maxRunDuration?: (google.protobuf.IDuration|null);

                /** NodeConfig localSsdEncryptionMode. */
                public localSsdEncryptionMode?: (google.container.v1beta1.NodeConfig.LocalSsdEncryptionMode|keyof typeof google.container.v1beta1.NodeConfig.LocalSsdEncryptionMode|null);

                /** NodeConfig effectiveCgroupMode. */
                public effectiveCgroupMode: (google.container.v1beta1.NodeConfig.EffectiveCgroupMode|keyof typeof google.container.v1beta1.NodeConfig.EffectiveCgroupMode);

                /** NodeConfig flexStart. */
                public flexStart?: (boolean|null);

                /** NodeConfig bootDisk. */
                public bootDisk?: (google.container.v1beta1.IBootDisk|null);

                /** NodeConfig consolidationDelay. */
                public consolidationDelay?: (google.protobuf.IDuration|null);

                /** NodeConfig taintConfig. */
                public taintConfig?: (google.container.v1beta1.ITaintConfig|null);

                /**
                 * Creates a new NodeConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns NodeConfig instance
                 */
                public static create(properties?: google.container.v1beta1.INodeConfig): google.container.v1beta1.NodeConfig;

                /**
                 * Encodes the specified NodeConfig message. Does not implicitly {@link google.container.v1beta1.NodeConfig.verify|verify} messages.
                 * @param message NodeConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.INodeConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified NodeConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.NodeConfig.verify|verify} messages.
                 * @param message NodeConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.INodeConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a NodeConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns NodeConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.NodeConfig;

                /**
                 * Decodes a NodeConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns NodeConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.NodeConfig;

                /**
                 * Verifies a NodeConfig message.
                 * @param message Plain 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 NodeConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns NodeConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.NodeConfig;

                /**
                 * Creates a plain object from a NodeConfig message. Also converts values to other types if specified.
                 * @param message NodeConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.NodeConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this NodeConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for NodeConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace NodeConfig {

                /** LocalSsdEncryptionMode enum. */
                enum LocalSsdEncryptionMode {
                    LOCAL_SSD_ENCRYPTION_MODE_UNSPECIFIED = 0,
                    STANDARD_ENCRYPTION = 1,
                    EPHEMERAL_KEY_ENCRYPTION = 2
                }

                /** EffectiveCgroupMode enum. */
                enum EffectiveCgroupMode {
                    EFFECTIVE_CGROUP_MODE_UNSPECIFIED = 0,
                    EFFECTIVE_CGROUP_MODE_V1 = 1,
                    EFFECTIVE_CGROUP_MODE_V2 = 2
                }
            }

            /** Properties of a TaintConfig. */
            interface ITaintConfig {

                /** TaintConfig architectureTaintBehavior */
                architectureTaintBehavior?: (google.container.v1beta1.TaintConfig.ArchitectureTaintBehavior|keyof typeof google.container.v1beta1.TaintConfig.ArchitectureTaintBehavior|null);
            }

            /** Represents a TaintConfig. */
            class TaintConfig implements ITaintConfig {

                /**
                 * Constructs a new TaintConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.ITaintConfig);

                /** TaintConfig architectureTaintBehavior. */
                public architectureTaintBehavior?: (google.container.v1beta1.TaintConfig.ArchitectureTaintBehavior|keyof typeof google.container.v1beta1.TaintConfig.ArchitectureTaintBehavior|null);

                /**
                 * Creates a new TaintConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns TaintConfig instance
                 */
                public static create(properties?: google.container.v1beta1.ITaintConfig): google.container.v1beta1.TaintConfig;

                /**
                 * Encodes the specified TaintConfig message. Does not implicitly {@link google.container.v1beta1.TaintConfig.verify|verify} messages.
                 * @param message TaintConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.ITaintConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified TaintConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.TaintConfig.verify|verify} messages.
                 * @param message TaintConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.ITaintConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a TaintConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns TaintConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.TaintConfig;

                /**
                 * Decodes a TaintConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns TaintConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.TaintConfig;

                /**
                 * Verifies a TaintConfig message.
                 * @param message Plain 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 TaintConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns TaintConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.TaintConfig;

                /**
                 * Creates a plain object from a TaintConfig message. Also converts values to other types if specified.
                 * @param message TaintConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.TaintConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this TaintConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for TaintConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace TaintConfig {

                /** ArchitectureTaintBehavior enum. */
                enum ArchitectureTaintBehavior {
                    ARCHITECTURE_TAINT_BEHAVIOR_UNSPECIFIED = 0,
                    NONE = 1,
                    ARM = 2
                }
            }

            /** Properties of an AdvancedMachineFeatures. */
            interface IAdvancedMachineFeatures {

                /** AdvancedMachineFeatures threadsPerCore */
                threadsPerCore?: (number|Long|string|null);

                /** AdvancedMachineFeatures enableNestedVirtualization */
                enableNestedVirtualization?: (boolean|null);

                /** AdvancedMachineFeatures performanceMonitoringUnit */
                performanceMonitoringUnit?: (google.container.v1beta1.AdvancedMachineFeatures.PerformanceMonitoringUnit|keyof typeof google.container.v1beta1.AdvancedMachineFeatures.PerformanceMonitoringUnit|null);
            }

            /** Represents an AdvancedMachineFeatures. */
            class AdvancedMachineFeatures implements IAdvancedMachineFeatures {

                /**
                 * Constructs a new AdvancedMachineFeatures.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IAdvancedMachineFeatures);

                /** AdvancedMachineFeatures threadsPerCore. */
                public threadsPerCore?: (number|Long|string|null);

                /** AdvancedMachineFeatures enableNestedVirtualization. */
                public enableNestedVirtualization?: (boolean|null);

                /** AdvancedMachineFeatures performanceMonitoringUnit. */
                public performanceMonitoringUnit?: (google.container.v1beta1.AdvancedMachineFeatures.PerformanceMonitoringUnit|keyof typeof google.container.v1beta1.AdvancedMachineFeatures.PerformanceMonitoringUnit|null);

                /**
                 * Creates a new AdvancedMachineFeatures instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns AdvancedMachineFeatures instance
                 */
                public static create(properties?: google.container.v1beta1.IAdvancedMachineFeatures): google.container.v1beta1.AdvancedMachineFeatures;

                /**
                 * Encodes the specified AdvancedMachineFeatures message. Does not implicitly {@link google.container.v1beta1.AdvancedMachineFeatures.verify|verify} messages.
                 * @param message AdvancedMachineFeatures message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IAdvancedMachineFeatures, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified AdvancedMachineFeatures message, length delimited. Does not implicitly {@link google.container.v1beta1.AdvancedMachineFeatures.verify|verify} messages.
                 * @param message AdvancedMachineFeatures message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IAdvancedMachineFeatures, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes an AdvancedMachineFeatures message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns AdvancedMachineFeatures
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.AdvancedMachineFeatures;

                /**
                 * Decodes an AdvancedMachineFeatures message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns AdvancedMachineFeatures
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.AdvancedMachineFeatures;

                /**
                 * Verifies an AdvancedMachineFeatures message.
                 * @param message Plain 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 AdvancedMachineFeatures message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns AdvancedMachineFeatures
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.AdvancedMachineFeatures;

                /**
                 * Creates a plain object from an AdvancedMachineFeatures message. Also converts values to other types if specified.
                 * @param message AdvancedMachineFeatures
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.AdvancedMachineFeatures, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this AdvancedMachineFeatures to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for AdvancedMachineFeatures
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace AdvancedMachineFeatures {

                /** PerformanceMonitoringUnit enum. */
                enum PerformanceMonitoringUnit {
                    PERFORMANCE_MONITORING_UNIT_UNSPECIFIED = 0,
                    ARCHITECTURAL = 1,
                    STANDARD = 2,
                    ENHANCED = 3
                }
            }

            /** Properties of a NodeNetworkConfig. */
            interface INodeNetworkConfig {

                /** NodeNetworkConfig createPodRange */
                createPodRange?: (boolean|null);

                /** NodeNetworkConfig podRange */
                podRange?: (string|null);

                /** NodeNetworkConfig podIpv4CidrBlock */
                podIpv4CidrBlock?: (string|null);

                /** NodeNetworkConfig enablePrivateNodes */
                enablePrivateNodes?: (boolean|null);

                /** NodeNetworkConfig networkPerformanceConfig */
                networkPerformanceConfig?: (google.container.v1beta1.NodeNetworkConfig.INetworkPerformanceConfig|null);

                /** NodeNetworkConfig podCidrOverprovisionConfig */
                podCidrOverprovisionConfig?: (google.container.v1beta1.IPodCIDROverprovisionConfig|null);

                /** NodeNetworkConfig additionalNodeNetworkConfigs */
                additionalNodeNetworkConfigs?: (google.container.v1beta1.IAdditionalNodeNetworkConfig[]|null);

                /** NodeNetworkConfig additionalPodNetworkConfigs */
                additionalPodNetworkConfigs?: (google.container.v1beta1.IAdditionalPodNetworkConfig[]|null);

                /** NodeNetworkConfig podIpv4RangeUtilization */
                podIpv4RangeUtilization?: (number|null);

                /** NodeNetworkConfig subnetwork */
                subnetwork?: (string|null);

                /** NodeNetworkConfig networkTierConfig */
                networkTierConfig?: (google.container.v1beta1.INetworkTierConfig|null);

                /** NodeNetworkConfig acceleratorNetworkProfile */
                acceleratorNetworkProfile?: (string|null);
            }

            /** Represents a NodeNetworkConfig. */
            class NodeNetworkConfig implements INodeNetworkConfig {

                /**
                 * Constructs a new NodeNetworkConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.INodeNetworkConfig);

                /** NodeNetworkConfig createPodRange. */
                public createPodRange: boolean;

                /** NodeNetworkConfig podRange. */
                public podRange: string;

                /** NodeNetworkConfig podIpv4CidrBlock. */
                public podIpv4CidrBlock: string;

                /** NodeNetworkConfig enablePrivateNodes. */
                public enablePrivateNodes?: (boolean|null);

                /** NodeNetworkConfig networkPerformanceConfig. */
                public networkPerformanceConfig?: (google.container.v1beta1.NodeNetworkConfig.INetworkPerformanceConfig|null);

                /** NodeNetworkConfig podCidrOverprovisionConfig. */
                public podCidrOverprovisionConfig?: (google.container.v1beta1.IPodCIDROverprovisionConfig|null);

                /** NodeNetworkConfig additionalNodeNetworkConfigs. */
                public additionalNodeNetworkConfigs: google.container.v1beta1.IAdditionalNodeNetworkConfig[];

                /** NodeNetworkConfig additionalPodNetworkConfigs. */
                public additionalPodNetworkConfigs: google.container.v1beta1.IAdditionalPodNetworkConfig[];

                /** NodeNetworkConfig podIpv4RangeUtilization. */
                public podIpv4RangeUtilization: number;

                /** NodeNetworkConfig subnetwork. */
                public subnetwork: string;

                /** NodeNetworkConfig networkTierConfig. */
                public networkTierConfig?: (google.container.v1beta1.INetworkTierConfig|null);

                /** NodeNetworkConfig acceleratorNetworkProfile. */
                public acceleratorNetworkProfile: string;

                /**
                 * Creates a new NodeNetworkConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns NodeNetworkConfig instance
                 */
                public static create(properties?: google.container.v1beta1.INodeNetworkConfig): google.container.v1beta1.NodeNetworkConfig;

                /**
                 * Encodes the specified NodeNetworkConfig message. Does not implicitly {@link google.container.v1beta1.NodeNetworkConfig.verify|verify} messages.
                 * @param message NodeNetworkConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.INodeNetworkConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified NodeNetworkConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.NodeNetworkConfig.verify|verify} messages.
                 * @param message NodeNetworkConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.INodeNetworkConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a NodeNetworkConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns NodeNetworkConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.NodeNetworkConfig;

                /**
                 * Decodes a NodeNetworkConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns NodeNetworkConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.NodeNetworkConfig;

                /**
                 * Verifies a NodeNetworkConfig message.
                 * @param message Plain 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 NodeNetworkConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns NodeNetworkConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.NodeNetworkConfig;

                /**
                 * Creates a plain object from a NodeNetworkConfig message. Also converts values to other types if specified.
                 * @param message NodeNetworkConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.NodeNetworkConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this NodeNetworkConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for NodeNetworkConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace NodeNetworkConfig {

                /** Properties of a NetworkPerformanceConfig. */
                interface INetworkPerformanceConfig {

                    /** NetworkPerformanceConfig totalEgressBandwidthTier */
                    totalEgressBandwidthTier?: (google.container.v1beta1.NodeNetworkConfig.NetworkPerformanceConfig.Tier|keyof typeof google.container.v1beta1.NodeNetworkConfig.NetworkPerformanceConfig.Tier|null);

                    /** NetworkPerformanceConfig externalIpEgressBandwidthTier */
                    externalIpEgressBandwidthTier?: (google.container.v1beta1.NodeNetworkConfig.NetworkPerformanceConfig.Tier|keyof typeof google.container.v1beta1.NodeNetworkConfig.NetworkPerformanceConfig.Tier|null);
                }

                /** Represents a NetworkPerformanceConfig. */
                class NetworkPerformanceConfig implements INetworkPerformanceConfig {

                    /**
                     * Constructs a new NetworkPerformanceConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.container.v1beta1.NodeNetworkConfig.INetworkPerformanceConfig);

                    /** NetworkPerformanceConfig totalEgressBandwidthTier. */
                    public totalEgressBandwidthTier?: (google.container.v1beta1.NodeNetworkConfig.NetworkPerformanceConfig.Tier|keyof typeof google.container.v1beta1.NodeNetworkConfig.NetworkPerformanceConfig.Tier|null);

                    /** NetworkPerformanceConfig externalIpEgressBandwidthTier. */
                    public externalIpEgressBandwidthTier?: (google.container.v1beta1.NodeNetworkConfig.NetworkPerformanceConfig.Tier|keyof typeof google.container.v1beta1.NodeNetworkConfig.NetworkPerformanceConfig.Tier|null);

                    /**
                     * Creates a new NetworkPerformanceConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkPerformanceConfig instance
                     */
                    public static create(properties?: google.container.v1beta1.NodeNetworkConfig.INetworkPerformanceConfig): google.container.v1beta1.NodeNetworkConfig.NetworkPerformanceConfig;

                    /**
                     * Encodes the specified NetworkPerformanceConfig message. Does not implicitly {@link google.container.v1beta1.NodeNetworkConfig.NetworkPerformanceConfig.verify|verify} messages.
                     * @param message NetworkPerformanceConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.container.v1beta1.NodeNetworkConfig.INetworkPerformanceConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkPerformanceConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.NodeNetworkConfig.NetworkPerformanceConfig.verify|verify} messages.
                     * @param message NetworkPerformanceConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.container.v1beta1.NodeNetworkConfig.INetworkPerformanceConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworkPerformanceConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworkPerformanceConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.NodeNetworkConfig.NetworkPerformanceConfig;

                    /**
                     * Decodes a NetworkPerformanceConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworkPerformanceConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.NodeNetworkConfig.NetworkPerformanceConfig;

                    /**
                     * Verifies a NetworkPerformanceConfig message.
                     * @param message Plain 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 NetworkPerformanceConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworkPerformanceConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.container.v1beta1.NodeNetworkConfig.NetworkPerformanceConfig;

                    /**
                     * Creates a plain object from a NetworkPerformanceConfig message. Also converts values to other types if specified.
                     * @param message NetworkPerformanceConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.container.v1beta1.NodeNetworkConfig.NetworkPerformanceConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworkPerformanceConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworkPerformanceConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace NetworkPerformanceConfig {

                    /** Tier enum. */
                    enum Tier {
                        TIER_UNSPECIFIED = 0,
                        TIER_1 = 1
                    }
                }
            }

            /** Properties of an AdditionalNodeNetworkConfig. */
            interface IAdditionalNodeNetworkConfig {

                /** AdditionalNodeNetworkConfig network */
                network?: (string|null);

                /** AdditionalNodeNetworkConfig subnetwork */
                subnetwork?: (string|null);
            }

            /** Represents an AdditionalNodeNetworkConfig. */
            class AdditionalNodeNetworkConfig implements IAdditionalNodeNetworkConfig {

                /**
                 * Constructs a new AdditionalNodeNetworkConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IAdditionalNodeNetworkConfig);

                /** AdditionalNodeNetworkConfig network. */
                public network: string;

                /** AdditionalNodeNetworkConfig subnetwork. */
                public subnetwork: string;

                /**
                 * Creates a new AdditionalNodeNetworkConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns AdditionalNodeNetworkConfig instance
                 */
                public static create(properties?: google.container.v1beta1.IAdditionalNodeNetworkConfig): google.container.v1beta1.AdditionalNodeNetworkConfig;

                /**
                 * Encodes the specified AdditionalNodeNetworkConfig message. Does not implicitly {@link google.container.v1beta1.AdditionalNodeNetworkConfig.verify|verify} messages.
                 * @param message AdditionalNodeNetworkConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IAdditionalNodeNetworkConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified AdditionalNodeNetworkConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.AdditionalNodeNetworkConfig.verify|verify} messages.
                 * @param message AdditionalNodeNetworkConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IAdditionalNodeNetworkConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes an AdditionalNodeNetworkConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns AdditionalNodeNetworkConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.AdditionalNodeNetworkConfig;

                /**
                 * Decodes an AdditionalNodeNetworkConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns AdditionalNodeNetworkConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.AdditionalNodeNetworkConfig;

                /**
                 * Verifies an AdditionalNodeNetworkConfig message.
                 * @param message Plain 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 AdditionalNodeNetworkConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns AdditionalNodeNetworkConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.AdditionalNodeNetworkConfig;

                /**
                 * Creates a plain object from an AdditionalNodeNetworkConfig message. Also converts values to other types if specified.
                 * @param message AdditionalNodeNetworkConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.AdditionalNodeNetworkConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this AdditionalNodeNetworkConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for AdditionalNodeNetworkConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of an AdditionalPodNetworkConfig. */
            interface IAdditionalPodNetworkConfig {

                /** AdditionalPodNetworkConfig subnetwork */
                subnetwork?: (string|null);

                /** AdditionalPodNetworkConfig secondaryPodRange */
                secondaryPodRange?: (string|null);

                /** AdditionalPodNetworkConfig maxPodsPerNode */
                maxPodsPerNode?: (google.container.v1beta1.IMaxPodsConstraint|null);
            }

            /** Represents an AdditionalPodNetworkConfig. */
            class AdditionalPodNetworkConfig implements IAdditionalPodNetworkConfig {

                /**
                 * Constructs a new AdditionalPodNetworkConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IAdditionalPodNetworkConfig);

                /** AdditionalPodNetworkConfig subnetwork. */
                public subnetwork: string;

                /** AdditionalPodNetworkConfig secondaryPodRange. */
                public secondaryPodRange: string;

                /** AdditionalPodNetworkConfig maxPodsPerNode. */
                public maxPodsPerNode?: (google.container.v1beta1.IMaxPodsConstraint|null);

                /**
                 * Creates a new AdditionalPodNetworkConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns AdditionalPodNetworkConfig instance
                 */
                public static create(properties?: google.container.v1beta1.IAdditionalPodNetworkConfig): google.container.v1beta1.AdditionalPodNetworkConfig;

                /**
                 * Encodes the specified AdditionalPodNetworkConfig message. Does not implicitly {@link google.container.v1beta1.AdditionalPodNetworkConfig.verify|verify} messages.
                 * @param message AdditionalPodNetworkConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IAdditionalPodNetworkConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified AdditionalPodNetworkConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.AdditionalPodNetworkConfig.verify|verify} messages.
                 * @param message AdditionalPodNetworkConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IAdditionalPodNetworkConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes an AdditionalPodNetworkConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns AdditionalPodNetworkConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.AdditionalPodNetworkConfig;

                /**
                 * Decodes an AdditionalPodNetworkConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns AdditionalPodNetworkConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.AdditionalPodNetworkConfig;

                /**
                 * Verifies an AdditionalPodNetworkConfig message.
                 * @param message Plain 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 AdditionalPodNetworkConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns AdditionalPodNetworkConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.AdditionalPodNetworkConfig;

                /**
                 * Creates a plain object from an AdditionalPodNetworkConfig message. Also converts values to other types if specified.
                 * @param message AdditionalPodNetworkConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.AdditionalPodNetworkConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this AdditionalPodNetworkConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for AdditionalPodNetworkConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a ShieldedInstanceConfig. */
            interface IShieldedInstanceConfig {

                /** ShieldedInstanceConfig enableSecureBoot */
                enableSecureBoot?: (boolean|null);

                /** ShieldedInstanceConfig enableIntegrityMonitoring */
                enableIntegrityMonitoring?: (boolean|null);
            }

            /** Represents a ShieldedInstanceConfig. */
            class ShieldedInstanceConfig implements IShieldedInstanceConfig {

                /**
                 * Constructs a new ShieldedInstanceConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IShieldedInstanceConfig);

                /** ShieldedInstanceConfig enableSecureBoot. */
                public enableSecureBoot: boolean;

                /** ShieldedInstanceConfig enableIntegrityMonitoring. */
                public enableIntegrityMonitoring: boolean;

                /**
                 * Creates a new ShieldedInstanceConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ShieldedInstanceConfig instance
                 */
                public static create(properties?: google.container.v1beta1.IShieldedInstanceConfig): google.container.v1beta1.ShieldedInstanceConfig;

                /**
                 * Encodes the specified ShieldedInstanceConfig message. Does not implicitly {@link google.container.v1beta1.ShieldedInstanceConfig.verify|verify} messages.
                 * @param message ShieldedInstanceConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IShieldedInstanceConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified ShieldedInstanceConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.ShieldedInstanceConfig.verify|verify} messages.
                 * @param message ShieldedInstanceConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IShieldedInstanceConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a ShieldedInstanceConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ShieldedInstanceConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.ShieldedInstanceConfig;

                /**
                 * Decodes a ShieldedInstanceConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ShieldedInstanceConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.ShieldedInstanceConfig;

                /**
                 * Verifies a ShieldedInstanceConfig message.
                 * @param message Plain 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 ShieldedInstanceConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ShieldedInstanceConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.ShieldedInstanceConfig;

                /**
                 * Creates a plain object from a ShieldedInstanceConfig message. Also converts values to other types if specified.
                 * @param message ShieldedInstanceConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.ShieldedInstanceConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ShieldedInstanceConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for ShieldedInstanceConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a SandboxConfig. */
            interface ISandboxConfig {

                /** SandboxConfig sandboxType */
                sandboxType?: (string|null);

                /** SandboxConfig type */
                type?: (google.container.v1beta1.SandboxConfig.Type|keyof typeof google.container.v1beta1.SandboxConfig.Type|null);
            }

            /** Represents a SandboxConfig. */
            class SandboxConfig implements ISandboxConfig {

                /**
                 * Constructs a new SandboxConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.ISandboxConfig);

                /** SandboxConfig sandboxType. */
                public sandboxType: string;

                /** SandboxConfig type. */
                public type: (google.container.v1beta1.SandboxConfig.Type|keyof typeof google.container.v1beta1.SandboxConfig.Type);

                /**
                 * Creates a new SandboxConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns SandboxConfig instance
                 */
                public static create(properties?: google.container.v1beta1.ISandboxConfig): google.container.v1beta1.SandboxConfig;

                /**
                 * Encodes the specified SandboxConfig message. Does not implicitly {@link google.container.v1beta1.SandboxConfig.verify|verify} messages.
                 * @param message SandboxConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.ISandboxConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified SandboxConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.SandboxConfig.verify|verify} messages.
                 * @param message SandboxConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.ISandboxConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a SandboxConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns SandboxConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.SandboxConfig;

                /**
                 * Decodes a SandboxConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns SandboxConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.SandboxConfig;

                /**
                 * Verifies a SandboxConfig message.
                 * @param message Plain 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 SandboxConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns SandboxConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.SandboxConfig;

                /**
                 * Creates a plain object from a SandboxConfig message. Also converts values to other types if specified.
                 * @param message SandboxConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.SandboxConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this SandboxConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for SandboxConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace SandboxConfig {

                /** Type enum. */
                enum Type {
                    UNSPECIFIED = 0,
                    GVISOR = 1
                }
            }

            /** Properties of an EphemeralStorageConfig. */
            interface IEphemeralStorageConfig {

                /** EphemeralStorageConfig localSsdCount */
                localSsdCount?: (number|null);
            }

            /** Represents an EphemeralStorageConfig. */
            class EphemeralStorageConfig implements IEphemeralStorageConfig {

                /**
                 * Constructs a new EphemeralStorageConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IEphemeralStorageConfig);

                /** EphemeralStorageConfig localSsdCount. */
                public localSsdCount: number;

                /**
                 * Creates a new EphemeralStorageConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns EphemeralStorageConfig instance
                 */
                public static create(properties?: google.container.v1beta1.IEphemeralStorageConfig): google.container.v1beta1.EphemeralStorageConfig;

                /**
                 * Encodes the specified EphemeralStorageConfig message. Does not implicitly {@link google.container.v1beta1.EphemeralStorageConfig.verify|verify} messages.
                 * @param message EphemeralStorageConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IEphemeralStorageConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified EphemeralStorageConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.EphemeralStorageConfig.verify|verify} messages.
                 * @param message EphemeralStorageConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IEphemeralStorageConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes an EphemeralStorageConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns EphemeralStorageConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.EphemeralStorageConfig;

                /**
                 * Decodes an EphemeralStorageConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns EphemeralStorageConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.EphemeralStorageConfig;

                /**
                 * Verifies an EphemeralStorageConfig message.
                 * @param message Plain 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 EphemeralStorageConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns EphemeralStorageConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.EphemeralStorageConfig;

                /**
                 * Creates a plain object from an EphemeralStorageConfig message. Also converts values to other types if specified.
                 * @param message EphemeralStorageConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.EphemeralStorageConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this EphemeralStorageConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for EphemeralStorageConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a LocalNvmeSsdBlockConfig. */
            interface ILocalNvmeSsdBlockConfig {

                /** LocalNvmeSsdBlockConfig localSsdCount */
                localSsdCount?: (number|null);
            }

            /** Represents a LocalNvmeSsdBlockConfig. */
            class LocalNvmeSsdBlockConfig implements ILocalNvmeSsdBlockConfig {

                /**
                 * Constructs a new LocalNvmeSsdBlockConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.ILocalNvmeSsdBlockConfig);

                /** LocalNvmeSsdBlockConfig localSsdCount. */
                public localSsdCount: number;

                /**
                 * Creates a new LocalNvmeSsdBlockConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns LocalNvmeSsdBlockConfig instance
                 */
                public static create(properties?: google.container.v1beta1.ILocalNvmeSsdBlockConfig): google.container.v1beta1.LocalNvmeSsdBlockConfig;

                /**
                 * Encodes the specified LocalNvmeSsdBlockConfig message. Does not implicitly {@link google.container.v1beta1.LocalNvmeSsdBlockConfig.verify|verify} messages.
                 * @param message LocalNvmeSsdBlockConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.ILocalNvmeSsdBlockConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified LocalNvmeSsdBlockConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.LocalNvmeSsdBlockConfig.verify|verify} messages.
                 * @param message LocalNvmeSsdBlockConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.ILocalNvmeSsdBlockConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a LocalNvmeSsdBlockConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns LocalNvmeSsdBlockConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.LocalNvmeSsdBlockConfig;

                /**
                 * Decodes a LocalNvmeSsdBlockConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns LocalNvmeSsdBlockConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.LocalNvmeSsdBlockConfig;

                /**
                 * Verifies a LocalNvmeSsdBlockConfig message.
                 * @param message Plain 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 LocalNvmeSsdBlockConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns LocalNvmeSsdBlockConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.LocalNvmeSsdBlockConfig;

                /**
                 * Creates a plain object from a LocalNvmeSsdBlockConfig message. Also converts values to other types if specified.
                 * @param message LocalNvmeSsdBlockConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.LocalNvmeSsdBlockConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this LocalNvmeSsdBlockConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for LocalNvmeSsdBlockConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of an EphemeralStorageLocalSsdConfig. */
            interface IEphemeralStorageLocalSsdConfig {

                /** EphemeralStorageLocalSsdConfig localSsdCount */
                localSsdCount?: (number|null);

                /** EphemeralStorageLocalSsdConfig dataCacheCount */
                dataCacheCount?: (number|null);
            }

            /** Represents an EphemeralStorageLocalSsdConfig. */
            class EphemeralStorageLocalSsdConfig implements IEphemeralStorageLocalSsdConfig {

                /**
                 * Constructs a new EphemeralStorageLocalSsdConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IEphemeralStorageLocalSsdConfig);

                /** EphemeralStorageLocalSsdConfig localSsdCount. */
                public localSsdCount: number;

                /** EphemeralStorageLocalSsdConfig dataCacheCount. */
                public dataCacheCount: number;

                /**
                 * Creates a new EphemeralStorageLocalSsdConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns EphemeralStorageLocalSsdConfig instance
                 */
                public static create(properties?: google.container.v1beta1.IEphemeralStorageLocalSsdConfig): google.container.v1beta1.EphemeralStorageLocalSsdConfig;

                /**
                 * Encodes the specified EphemeralStorageLocalSsdConfig message. Does not implicitly {@link google.container.v1beta1.EphemeralStorageLocalSsdConfig.verify|verify} messages.
                 * @param message EphemeralStorageLocalSsdConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IEphemeralStorageLocalSsdConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified EphemeralStorageLocalSsdConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.EphemeralStorageLocalSsdConfig.verify|verify} messages.
                 * @param message EphemeralStorageLocalSsdConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IEphemeralStorageLocalSsdConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes an EphemeralStorageLocalSsdConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns EphemeralStorageLocalSsdConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.EphemeralStorageLocalSsdConfig;

                /**
                 * Decodes an EphemeralStorageLocalSsdConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns EphemeralStorageLocalSsdConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.EphemeralStorageLocalSsdConfig;

                /**
                 * Verifies an EphemeralStorageLocalSsdConfig message.
                 * @param message Plain 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 EphemeralStorageLocalSsdConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns EphemeralStorageLocalSsdConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.EphemeralStorageLocalSsdConfig;

                /**
                 * Creates a plain object from an EphemeralStorageLocalSsdConfig message. Also converts values to other types if specified.
                 * @param message EphemeralStorageLocalSsdConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.EphemeralStorageLocalSsdConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this EphemeralStorageLocalSsdConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for EphemeralStorageLocalSsdConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a GcfsConfig. */
            interface IGcfsConfig {

                /** GcfsConfig enabled */
                enabled?: (boolean|null);
            }

            /** Represents a GcfsConfig. */
            class GcfsConfig implements IGcfsConfig {

                /**
                 * Constructs a new GcfsConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IGcfsConfig);

                /** GcfsConfig enabled. */
                public enabled: boolean;

                /**
                 * Creates a new GcfsConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns GcfsConfig instance
                 */
                public static create(properties?: google.container.v1beta1.IGcfsConfig): google.container.v1beta1.GcfsConfig;

                /**
                 * Encodes the specified GcfsConfig message. Does not implicitly {@link google.container.v1beta1.GcfsConfig.verify|verify} messages.
                 * @param message GcfsConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IGcfsConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified GcfsConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.GcfsConfig.verify|verify} messages.
                 * @param message GcfsConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IGcfsConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a GcfsConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns GcfsConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.GcfsConfig;

                /**
                 * Decodes a GcfsConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns GcfsConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.GcfsConfig;

                /**
                 * Verifies a GcfsConfig message.
                 * @param message Plain 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 GcfsConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns GcfsConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.GcfsConfig;

                /**
                 * Creates a plain object from a GcfsConfig message. Also converts values to other types if specified.
                 * @param message GcfsConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.GcfsConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this GcfsConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for GcfsConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a ReservationAffinity. */
            interface IReservationAffinity {

                /** ReservationAffinity consumeReservationType */
                consumeReservationType?: (google.container.v1beta1.ReservationAffinity.Type|keyof typeof google.container.v1beta1.ReservationAffinity.Type|null);

                /** ReservationAffinity key */
                key?: (string|null);

                /** ReservationAffinity values */
                values?: (string[]|null);
            }

            /** Represents a ReservationAffinity. */
            class ReservationAffinity implements IReservationAffinity {

                /**
                 * Constructs a new ReservationAffinity.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IReservationAffinity);

                /** ReservationAffinity consumeReservationType. */
                public consumeReservationType: (google.container.v1beta1.ReservationAffinity.Type|keyof typeof google.container.v1beta1.ReservationAffinity.Type);

                /** ReservationAffinity key. */
                public key: string;

                /** ReservationAffinity values. */
                public values: string[];

                /**
                 * Creates a new ReservationAffinity instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ReservationAffinity instance
                 */
                public static create(properties?: google.container.v1beta1.IReservationAffinity): google.container.v1beta1.ReservationAffinity;

                /**
                 * Encodes the specified ReservationAffinity message. Does not implicitly {@link google.container.v1beta1.ReservationAffinity.verify|verify} messages.
                 * @param message ReservationAffinity message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IReservationAffinity, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified ReservationAffinity message, length delimited. Does not implicitly {@link google.container.v1beta1.ReservationAffinity.verify|verify} messages.
                 * @param message ReservationAffinity message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IReservationAffinity, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a ReservationAffinity message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ReservationAffinity
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.ReservationAffinity;

                /**
                 * Decodes a ReservationAffinity message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ReservationAffinity
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.ReservationAffinity;

                /**
                 * Verifies a ReservationAffinity message.
                 * @param message Plain 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 ReservationAffinity message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ReservationAffinity
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.ReservationAffinity;

                /**
                 * Creates a plain object from a ReservationAffinity message. Also converts values to other types if specified.
                 * @param message ReservationAffinity
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.ReservationAffinity, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ReservationAffinity to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for ReservationAffinity
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace ReservationAffinity {

                /** Type enum. */
                enum Type {
                    UNSPECIFIED = 0,
                    NO_RESERVATION = 1,
                    ANY_RESERVATION = 2,
                    SPECIFIC_RESERVATION = 3
                }
            }

            /** Properties of a SoleTenantConfig. */
            interface ISoleTenantConfig {

                /** SoleTenantConfig nodeAffinities */
                nodeAffinities?: (google.container.v1beta1.SoleTenantConfig.INodeAffinity[]|null);

                /** SoleTenantConfig minNodeCpus */
                minNodeCpus?: (number|null);
            }

            /** Represents a SoleTenantConfig. */
            class SoleTenantConfig implements ISoleTenantConfig {

                /**
                 * Constructs a new SoleTenantConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.ISoleTenantConfig);

                /** SoleTenantConfig nodeAffinities. */
                public nodeAffinities: google.container.v1beta1.SoleTenantConfig.INodeAffinity[];

                /** SoleTenantConfig minNodeCpus. */
                public minNodeCpus?: (number|null);

                /**
                 * Creates a new SoleTenantConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns SoleTenantConfig instance
                 */
                public static create(properties?: google.container.v1beta1.ISoleTenantConfig): google.container.v1beta1.SoleTenantConfig;

                /**
                 * Encodes the specified SoleTenantConfig message. Does not implicitly {@link google.container.v1beta1.SoleTenantConfig.verify|verify} messages.
                 * @param message SoleTenantConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.ISoleTenantConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified SoleTenantConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.SoleTenantConfig.verify|verify} messages.
                 * @param message SoleTenantConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.ISoleTenantConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a SoleTenantConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns SoleTenantConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.SoleTenantConfig;

                /**
                 * Decodes a SoleTenantConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns SoleTenantConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.SoleTenantConfig;

                /**
                 * Verifies a SoleTenantConfig message.
                 * @param message Plain 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 SoleTenantConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns SoleTenantConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.SoleTenantConfig;

                /**
                 * Creates a plain object from a SoleTenantConfig message. Also converts values to other types if specified.
                 * @param message SoleTenantConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.SoleTenantConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this SoleTenantConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for SoleTenantConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace SoleTenantConfig {

                /** Properties of a NodeAffinity. */
                interface INodeAffinity {

                    /** NodeAffinity key */
                    key?: (string|null);

                    /** NodeAffinity operator */
                    operator?: (google.container.v1beta1.SoleTenantConfig.NodeAffinity.Operator|keyof typeof google.container.v1beta1.SoleTenantConfig.NodeAffinity.Operator|null);

                    /** NodeAffinity values */
                    values?: (string[]|null);
                }

                /** Represents a NodeAffinity. */
                class NodeAffinity implements INodeAffinity {

                    /**
                     * Constructs a new NodeAffinity.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.container.v1beta1.SoleTenantConfig.INodeAffinity);

                    /** NodeAffinity key. */
                    public key: string;

                    /** NodeAffinity operator. */
                    public operator: (google.container.v1beta1.SoleTenantConfig.NodeAffinity.Operator|keyof typeof google.container.v1beta1.SoleTenantConfig.NodeAffinity.Operator);

                    /** NodeAffinity values. */
                    public values: string[];

                    /**
                     * Creates a new NodeAffinity instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NodeAffinity instance
                     */
                    public static create(properties?: google.container.v1beta1.SoleTenantConfig.INodeAffinity): google.container.v1beta1.SoleTenantConfig.NodeAffinity;

                    /**
                     * Encodes the specified NodeAffinity message. Does not implicitly {@link google.container.v1beta1.SoleTenantConfig.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: google.container.v1beta1.SoleTenantConfig.INodeAffinity, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NodeAffinity message, length delimited. Does not implicitly {@link google.container.v1beta1.SoleTenantConfig.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: google.container.v1beta1.SoleTenantConfig.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): google.container.v1beta1.SoleTenantConfig.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)): google.container.v1beta1.SoleTenantConfig.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 }): google.container.v1beta1.SoleTenantConfig.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: google.container.v1beta1.SoleTenantConfig.NodeAffinity, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NodeAffinity to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NodeAffinity
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace NodeAffinity {

                    /** Operator enum. */
                    enum Operator {
                        OPERATOR_UNSPECIFIED = 0,
                        IN = 1,
                        NOT_IN = 2
                    }
                }
            }

            /** Properties of a ContainerdConfig. */
            interface IContainerdConfig {

                /** ContainerdConfig privateRegistryAccessConfig */
                privateRegistryAccessConfig?: (google.container.v1beta1.ContainerdConfig.IPrivateRegistryAccessConfig|null);

                /** ContainerdConfig writableCgroups */
                writableCgroups?: (google.container.v1beta1.ContainerdConfig.IWritableCgroups|null);

                /** ContainerdConfig registryHosts */
                registryHosts?: (google.container.v1beta1.ContainerdConfig.IRegistryHostConfig[]|null);
            }

            /** Represents a ContainerdConfig. */
            class ContainerdConfig implements IContainerdConfig {

                /**
                 * Constructs a new ContainerdConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IContainerdConfig);

                /** ContainerdConfig privateRegistryAccessConfig. */
                public privateRegistryAccessConfig?: (google.container.v1beta1.ContainerdConfig.IPrivateRegistryAccessConfig|null);

                /** ContainerdConfig writableCgroups. */
                public writableCgroups?: (google.container.v1beta1.ContainerdConfig.IWritableCgroups|null);

                /** ContainerdConfig registryHosts. */
                public registryHosts: google.container.v1beta1.ContainerdConfig.IRegistryHostConfig[];

                /**
                 * Creates a new ContainerdConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ContainerdConfig instance
                 */
                public static create(properties?: google.container.v1beta1.IContainerdConfig): google.container.v1beta1.ContainerdConfig;

                /**
                 * Encodes the specified ContainerdConfig message. Does not implicitly {@link google.container.v1beta1.ContainerdConfig.verify|verify} messages.
                 * @param message ContainerdConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IContainerdConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified ContainerdConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.ContainerdConfig.verify|verify} messages.
                 * @param message ContainerdConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IContainerdConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a ContainerdConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ContainerdConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.ContainerdConfig;

                /**
                 * Decodes a ContainerdConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ContainerdConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.ContainerdConfig;

                /**
                 * Verifies a ContainerdConfig message.
                 * @param message Plain 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 ContainerdConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ContainerdConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.ContainerdConfig;

                /**
                 * Creates a plain object from a ContainerdConfig message. Also converts values to other types if specified.
                 * @param message ContainerdConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.ContainerdConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ContainerdConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for ContainerdConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace ContainerdConfig {

                /** Properties of a PrivateRegistryAccessConfig. */
                interface IPrivateRegistryAccessConfig {

                    /** PrivateRegistryAccessConfig enabled */
                    enabled?: (boolean|null);

                    /** PrivateRegistryAccessConfig certificateAuthorityDomainConfig */
                    certificateAuthorityDomainConfig?: (google.container.v1beta1.ContainerdConfig.PrivateRegistryAccessConfig.ICertificateAuthorityDomainConfig[]|null);
                }

                /** Represents a PrivateRegistryAccessConfig. */
                class PrivateRegistryAccessConfig implements IPrivateRegistryAccessConfig {

                    /**
                     * Constructs a new PrivateRegistryAccessConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.container.v1beta1.ContainerdConfig.IPrivateRegistryAccessConfig);

                    /** PrivateRegistryAccessConfig enabled. */
                    public enabled: boolean;

                    /** PrivateRegistryAccessConfig certificateAuthorityDomainConfig. */
                    public certificateAuthorityDomainConfig: google.container.v1beta1.ContainerdConfig.PrivateRegistryAccessConfig.ICertificateAuthorityDomainConfig[];

                    /**
                     * Creates a new PrivateRegistryAccessConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PrivateRegistryAccessConfig instance
                     */
                    public static create(properties?: google.container.v1beta1.ContainerdConfig.IPrivateRegistryAccessConfig): google.container.v1beta1.ContainerdConfig.PrivateRegistryAccessConfig;

                    /**
                     * Encodes the specified PrivateRegistryAccessConfig message. Does not implicitly {@link google.container.v1beta1.ContainerdConfig.PrivateRegistryAccessConfig.verify|verify} messages.
                     * @param message PrivateRegistryAccessConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.container.v1beta1.ContainerdConfig.IPrivateRegistryAccessConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PrivateRegistryAccessConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.ContainerdConfig.PrivateRegistryAccessConfig.verify|verify} messages.
                     * @param message PrivateRegistryAccessConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.container.v1beta1.ContainerdConfig.IPrivateRegistryAccessConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PrivateRegistryAccessConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PrivateRegistryAccessConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.ContainerdConfig.PrivateRegistryAccessConfig;

                    /**
                     * Decodes a PrivateRegistryAccessConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PrivateRegistryAccessConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.ContainerdConfig.PrivateRegistryAccessConfig;

                    /**
                     * Verifies a PrivateRegistryAccessConfig message.
                     * @param message Plain 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 PrivateRegistryAccessConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PrivateRegistryAccessConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.container.v1beta1.ContainerdConfig.PrivateRegistryAccessConfig;

                    /**
                     * Creates a plain object from a PrivateRegistryAccessConfig message. Also converts values to other types if specified.
                     * @param message PrivateRegistryAccessConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.container.v1beta1.ContainerdConfig.PrivateRegistryAccessConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PrivateRegistryAccessConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PrivateRegistryAccessConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace PrivateRegistryAccessConfig {

                    /** Properties of a CertificateAuthorityDomainConfig. */
                    interface ICertificateAuthorityDomainConfig {

                        /** CertificateAuthorityDomainConfig fqdns */
                        fqdns?: (string[]|null);

                        /** CertificateAuthorityDomainConfig gcpSecretManagerCertificateConfig */
                        gcpSecretManagerCertificateConfig?: (google.container.v1beta1.ContainerdConfig.PrivateRegistryAccessConfig.CertificateAuthorityDomainConfig.IGCPSecretManagerCertificateConfig|null);
                    }

                    /** Represents a CertificateAuthorityDomainConfig. */
                    class CertificateAuthorityDomainConfig implements ICertificateAuthorityDomainConfig {

                        /**
                         * Constructs a new CertificateAuthorityDomainConfig.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.container.v1beta1.ContainerdConfig.PrivateRegistryAccessConfig.ICertificateAuthorityDomainConfig);

                        /** CertificateAuthorityDomainConfig fqdns. */
                        public fqdns: string[];

                        /** CertificateAuthorityDomainConfig gcpSecretManagerCertificateConfig. */
                        public gcpSecretManagerCertificateConfig?: (google.container.v1beta1.ContainerdConfig.PrivateRegistryAccessConfig.CertificateAuthorityDomainConfig.IGCPSecretManagerCertificateConfig|null);

                        /** CertificateAuthorityDomainConfig certificateConfig. */
                        public certificateConfig?: "gcpSecretManagerCertificateConfig";

                        /**
                         * Creates a new CertificateAuthorityDomainConfig instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns CertificateAuthorityDomainConfig instance
                         */
                        public static create(properties?: google.container.v1beta1.ContainerdConfig.PrivateRegistryAccessConfig.ICertificateAuthorityDomainConfig): google.container.v1beta1.ContainerdConfig.PrivateRegistryAccessConfig.CertificateAuthorityDomainConfig;

                        /**
                         * Encodes the specified CertificateAuthorityDomainConfig message. Does not implicitly {@link google.container.v1beta1.ContainerdConfig.PrivateRegistryAccessConfig.CertificateAuthorityDomainConfig.verify|verify} messages.
                         * @param message CertificateAuthorityDomainConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.container.v1beta1.ContainerdConfig.PrivateRegistryAccessConfig.ICertificateAuthorityDomainConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified CertificateAuthorityDomainConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.ContainerdConfig.PrivateRegistryAccessConfig.CertificateAuthorityDomainConfig.verify|verify} messages.
                         * @param message CertificateAuthorityDomainConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.container.v1beta1.ContainerdConfig.PrivateRegistryAccessConfig.ICertificateAuthorityDomainConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a CertificateAuthorityDomainConfig message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns CertificateAuthorityDomainConfig
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.ContainerdConfig.PrivateRegistryAccessConfig.CertificateAuthorityDomainConfig;

                        /**
                         * Decodes a CertificateAuthorityDomainConfig message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns CertificateAuthorityDomainConfig
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.ContainerdConfig.PrivateRegistryAccessConfig.CertificateAuthorityDomainConfig;

                        /**
                         * Verifies a CertificateAuthorityDomainConfig message.
                         * @param message Plain 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 CertificateAuthorityDomainConfig message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns CertificateAuthorityDomainConfig
                         */
                        public static fromObject(object: { [k: string]: any }): google.container.v1beta1.ContainerdConfig.PrivateRegistryAccessConfig.CertificateAuthorityDomainConfig;

                        /**
                         * Creates a plain object from a CertificateAuthorityDomainConfig message. Also converts values to other types if specified.
                         * @param message CertificateAuthorityDomainConfig
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.container.v1beta1.ContainerdConfig.PrivateRegistryAccessConfig.CertificateAuthorityDomainConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this CertificateAuthorityDomainConfig to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for CertificateAuthorityDomainConfig
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    namespace CertificateAuthorityDomainConfig {

                        /** Properties of a GCPSecretManagerCertificateConfig. */
                        interface IGCPSecretManagerCertificateConfig {

                            /** GCPSecretManagerCertificateConfig secretUri */
                            secretUri?: (string|null);
                        }

                        /** Represents a GCPSecretManagerCertificateConfig. */
                        class GCPSecretManagerCertificateConfig implements IGCPSecretManagerCertificateConfig {

                            /**
                             * Constructs a new GCPSecretManagerCertificateConfig.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.container.v1beta1.ContainerdConfig.PrivateRegistryAccessConfig.CertificateAuthorityDomainConfig.IGCPSecretManagerCertificateConfig);

                            /** GCPSecretManagerCertificateConfig secretUri. */
                            public secretUri: string;

                            /**
                             * Creates a new GCPSecretManagerCertificateConfig instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns GCPSecretManagerCertificateConfig instance
                             */
                            public static create(properties?: google.container.v1beta1.ContainerdConfig.PrivateRegistryAccessConfig.CertificateAuthorityDomainConfig.IGCPSecretManagerCertificateConfig): google.container.v1beta1.ContainerdConfig.PrivateRegistryAccessConfig.CertificateAuthorityDomainConfig.GCPSecretManagerCertificateConfig;

                            /**
                             * Encodes the specified GCPSecretManagerCertificateConfig message. Does not implicitly {@link google.container.v1beta1.ContainerdConfig.PrivateRegistryAccessConfig.CertificateAuthorityDomainConfig.GCPSecretManagerCertificateConfig.verify|verify} messages.
                             * @param message GCPSecretManagerCertificateConfig message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.container.v1beta1.ContainerdConfig.PrivateRegistryAccessConfig.CertificateAuthorityDomainConfig.IGCPSecretManagerCertificateConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified GCPSecretManagerCertificateConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.ContainerdConfig.PrivateRegistryAccessConfig.CertificateAuthorityDomainConfig.GCPSecretManagerCertificateConfig.verify|verify} messages.
                             * @param message GCPSecretManagerCertificateConfig message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.container.v1beta1.ContainerdConfig.PrivateRegistryAccessConfig.CertificateAuthorityDomainConfig.IGCPSecretManagerCertificateConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a GCPSecretManagerCertificateConfig message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns GCPSecretManagerCertificateConfig
                             * @throws {Error} If the payload is not a reader or valid buffer
                             * @throws {$protobuf.util.ProtocolError} If required fields are missing
                             */
                            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.ContainerdConfig.PrivateRegistryAccessConfig.CertificateAuthorityDomainConfig.GCPSecretManagerCertificateConfig;

                            /**
                             * Decodes a GCPSecretManagerCertificateConfig message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns GCPSecretManagerCertificateConfig
                             * @throws {Error} If the payload is not a reader or valid buffer
                             * @throws {$protobuf.util.ProtocolError} If required fields are missing
                             */
                            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.ContainerdConfig.PrivateRegistryAccessConfig.CertificateAuthorityDomainConfig.GCPSecretManagerCertificateConfig;

                            /**
                             * Verifies a GCPSecretManagerCertificateConfig message.
                             * @param message Plain 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 GCPSecretManagerCertificateConfig message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns GCPSecretManagerCertificateConfig
                             */
                            public static fromObject(object: { [k: string]: any }): google.container.v1beta1.ContainerdConfig.PrivateRegistryAccessConfig.CertificateAuthorityDomainConfig.GCPSecretManagerCertificateConfig;

                            /**
                             * Creates a plain object from a GCPSecretManagerCertificateConfig message. Also converts values to other types if specified.
                             * @param message GCPSecretManagerCertificateConfig
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.container.v1beta1.ContainerdConfig.PrivateRegistryAccessConfig.CertificateAuthorityDomainConfig.GCPSecretManagerCertificateConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this GCPSecretManagerCertificateConfig to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for GCPSecretManagerCertificateConfig
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }
                    }
                }

                /** Properties of a WritableCgroups. */
                interface IWritableCgroups {

                    /** WritableCgroups enabled */
                    enabled?: (boolean|null);
                }

                /** Represents a WritableCgroups. */
                class WritableCgroups implements IWritableCgroups {

                    /**
                     * Constructs a new WritableCgroups.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.container.v1beta1.ContainerdConfig.IWritableCgroups);

                    /** WritableCgroups enabled. */
                    public enabled: boolean;

                    /**
                     * Creates a new WritableCgroups instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns WritableCgroups instance
                     */
                    public static create(properties?: google.container.v1beta1.ContainerdConfig.IWritableCgroups): google.container.v1beta1.ContainerdConfig.WritableCgroups;

                    /**
                     * Encodes the specified WritableCgroups message. Does not implicitly {@link google.container.v1beta1.ContainerdConfig.WritableCgroups.verify|verify} messages.
                     * @param message WritableCgroups message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.container.v1beta1.ContainerdConfig.IWritableCgroups, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified WritableCgroups message, length delimited. Does not implicitly {@link google.container.v1beta1.ContainerdConfig.WritableCgroups.verify|verify} messages.
                     * @param message WritableCgroups message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.container.v1beta1.ContainerdConfig.IWritableCgroups, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a WritableCgroups message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns WritableCgroups
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.ContainerdConfig.WritableCgroups;

                    /**
                     * Decodes a WritableCgroups message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns WritableCgroups
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.ContainerdConfig.WritableCgroups;

                    /**
                     * Verifies a WritableCgroups message.
                     * @param message Plain 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 WritableCgroups message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns WritableCgroups
                     */
                    public static fromObject(object: { [k: string]: any }): google.container.v1beta1.ContainerdConfig.WritableCgroups;

                    /**
                     * Creates a plain object from a WritableCgroups message. Also converts values to other types if specified.
                     * @param message WritableCgroups
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.container.v1beta1.ContainerdConfig.WritableCgroups, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this WritableCgroups to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for WritableCgroups
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RegistryHostConfig. */
                interface IRegistryHostConfig {

                    /** RegistryHostConfig server */
                    server?: (string|null);

                    /** RegistryHostConfig hosts */
                    hosts?: (google.container.v1beta1.ContainerdConfig.RegistryHostConfig.IHostConfig[]|null);
                }

                /** Represents a RegistryHostConfig. */
                class RegistryHostConfig implements IRegistryHostConfig {

                    /**
                     * Constructs a new RegistryHostConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.container.v1beta1.ContainerdConfig.IRegistryHostConfig);

                    /** RegistryHostConfig server. */
                    public server: string;

                    /** RegistryHostConfig hosts. */
                    public hosts: google.container.v1beta1.ContainerdConfig.RegistryHostConfig.IHostConfig[];

                    /**
                     * Creates a new RegistryHostConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RegistryHostConfig instance
                     */
                    public static create(properties?: google.container.v1beta1.ContainerdConfig.IRegistryHostConfig): google.container.v1beta1.ContainerdConfig.RegistryHostConfig;

                    /**
                     * Encodes the specified RegistryHostConfig message. Does not implicitly {@link google.container.v1beta1.ContainerdConfig.RegistryHostConfig.verify|verify} messages.
                     * @param message RegistryHostConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.container.v1beta1.ContainerdConfig.IRegistryHostConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RegistryHostConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.ContainerdConfig.RegistryHostConfig.verify|verify} messages.
                     * @param message RegistryHostConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.container.v1beta1.ContainerdConfig.IRegistryHostConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RegistryHostConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RegistryHostConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.ContainerdConfig.RegistryHostConfig;

                    /**
                     * Decodes a RegistryHostConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RegistryHostConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.ContainerdConfig.RegistryHostConfig;

                    /**
                     * Verifies a RegistryHostConfig message.
                     * @param message Plain 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 RegistryHostConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RegistryHostConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.container.v1beta1.ContainerdConfig.RegistryHostConfig;

                    /**
                     * Creates a plain object from a RegistryHostConfig message. Also converts values to other types if specified.
                     * @param message RegistryHostConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.container.v1beta1.ContainerdConfig.RegistryHostConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RegistryHostConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RegistryHostConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace RegistryHostConfig {

                    /** Properties of a CertificateConfig. */
                    interface ICertificateConfig {

                        /** CertificateConfig gcpSecretManagerSecretUri */
                        gcpSecretManagerSecretUri?: (string|null);
                    }

                    /** Represents a CertificateConfig. */
                    class CertificateConfig implements ICertificateConfig {

                        /**
                         * Constructs a new CertificateConfig.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.container.v1beta1.ContainerdConfig.RegistryHostConfig.ICertificateConfig);

                        /** CertificateConfig gcpSecretManagerSecretUri. */
                        public gcpSecretManagerSecretUri?: (string|null);

                        /** CertificateConfig certificate. */
                        public certificate?: "gcpSecretManagerSecretUri";

                        /**
                         * Creates a new CertificateConfig instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns CertificateConfig instance
                         */
                        public static create(properties?: google.container.v1beta1.ContainerdConfig.RegistryHostConfig.ICertificateConfig): google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfig;

                        /**
                         * Encodes the specified CertificateConfig message. Does not implicitly {@link google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfig.verify|verify} messages.
                         * @param message CertificateConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.container.v1beta1.ContainerdConfig.RegistryHostConfig.ICertificateConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified CertificateConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfig.verify|verify} messages.
                         * @param message CertificateConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.container.v1beta1.ContainerdConfig.RegistryHostConfig.ICertificateConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a CertificateConfig message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns CertificateConfig
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfig;

                        /**
                         * Decodes a CertificateConfig message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns CertificateConfig
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfig;

                        /**
                         * Verifies a CertificateConfig message.
                         * @param message Plain 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 CertificateConfig message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns CertificateConfig
                         */
                        public static fromObject(object: { [k: string]: any }): google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfig;

                        /**
                         * Creates a plain object from a CertificateConfig message. Also converts values to other types if specified.
                         * @param message CertificateConfig
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this CertificateConfig to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for CertificateConfig
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of a CertificateConfigPair. */
                    interface ICertificateConfigPair {

                        /** CertificateConfigPair cert */
                        cert?: (google.container.v1beta1.ContainerdConfig.RegistryHostConfig.ICertificateConfig|null);

                        /** CertificateConfigPair key */
                        key?: (google.container.v1beta1.ContainerdConfig.RegistryHostConfig.ICertificateConfig|null);
                    }

                    /** Represents a CertificateConfigPair. */
                    class CertificateConfigPair implements ICertificateConfigPair {

                        /**
                         * Constructs a new CertificateConfigPair.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.container.v1beta1.ContainerdConfig.RegistryHostConfig.ICertificateConfigPair);

                        /** CertificateConfigPair cert. */
                        public cert?: (google.container.v1beta1.ContainerdConfig.RegistryHostConfig.ICertificateConfig|null);

                        /** CertificateConfigPair key. */
                        public key?: (google.container.v1beta1.ContainerdConfig.RegistryHostConfig.ICertificateConfig|null);

                        /**
                         * Creates a new CertificateConfigPair instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns CertificateConfigPair instance
                         */
                        public static create(properties?: google.container.v1beta1.ContainerdConfig.RegistryHostConfig.ICertificateConfigPair): google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfigPair;

                        /**
                         * Encodes the specified CertificateConfigPair message. Does not implicitly {@link google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfigPair.verify|verify} messages.
                         * @param message CertificateConfigPair message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.container.v1beta1.ContainerdConfig.RegistryHostConfig.ICertificateConfigPair, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified CertificateConfigPair message, length delimited. Does not implicitly {@link google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfigPair.verify|verify} messages.
                         * @param message CertificateConfigPair message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.container.v1beta1.ContainerdConfig.RegistryHostConfig.ICertificateConfigPair, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a CertificateConfigPair message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns CertificateConfigPair
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfigPair;

                        /**
                         * Decodes a CertificateConfigPair message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns CertificateConfigPair
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfigPair;

                        /**
                         * Verifies a CertificateConfigPair message.
                         * @param message Plain 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 CertificateConfigPair message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns CertificateConfigPair
                         */
                        public static fromObject(object: { [k: string]: any }): google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfigPair;

                        /**
                         * Creates a plain object from a CertificateConfigPair message. Also converts values to other types if specified.
                         * @param message CertificateConfigPair
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfigPair, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this CertificateConfigPair to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for CertificateConfigPair
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of a RegistryHeader. */
                    interface IRegistryHeader {

                        /** RegistryHeader key */
                        key?: (string|null);

                        /** RegistryHeader value */
                        value?: (string[]|null);
                    }

                    /** Represents a RegistryHeader. */
                    class RegistryHeader implements IRegistryHeader {

                        /**
                         * Constructs a new RegistryHeader.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.container.v1beta1.ContainerdConfig.RegistryHostConfig.IRegistryHeader);

                        /** RegistryHeader key. */
                        public key: string;

                        /** RegistryHeader value. */
                        public value: string[];

                        /**
                         * Creates a new RegistryHeader instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns RegistryHeader instance
                         */
                        public static create(properties?: google.container.v1beta1.ContainerdConfig.RegistryHostConfig.IRegistryHeader): google.container.v1beta1.ContainerdConfig.RegistryHostConfig.RegistryHeader;

                        /**
                         * Encodes the specified RegistryHeader message. Does not implicitly {@link google.container.v1beta1.ContainerdConfig.RegistryHostConfig.RegistryHeader.verify|verify} messages.
                         * @param message RegistryHeader message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.container.v1beta1.ContainerdConfig.RegistryHostConfig.IRegistryHeader, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified RegistryHeader message, length delimited. Does not implicitly {@link google.container.v1beta1.ContainerdConfig.RegistryHostConfig.RegistryHeader.verify|verify} messages.
                         * @param message RegistryHeader message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.container.v1beta1.ContainerdConfig.RegistryHostConfig.IRegistryHeader, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a RegistryHeader message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns RegistryHeader
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.ContainerdConfig.RegistryHostConfig.RegistryHeader;

                        /**
                         * Decodes a RegistryHeader message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns RegistryHeader
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.ContainerdConfig.RegistryHostConfig.RegistryHeader;

                        /**
                         * Verifies a RegistryHeader message.
                         * @param message Plain 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 RegistryHeader message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns RegistryHeader
                         */
                        public static fromObject(object: { [k: string]: any }): google.container.v1beta1.ContainerdConfig.RegistryHostConfig.RegistryHeader;

                        /**
                         * Creates a plain object from a RegistryHeader message. Also converts values to other types if specified.
                         * @param message RegistryHeader
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.container.v1beta1.ContainerdConfig.RegistryHostConfig.RegistryHeader, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this RegistryHeader to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for RegistryHeader
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** HostCapability enum. */
                    enum HostCapability {
                        HOST_CAPABILITY_UNSPECIFIED = 0,
                        HOST_CAPABILITY_PULL = 1,
                        HOST_CAPABILITY_RESOLVE = 2,
                        HOST_CAPABILITY_PUSH = 3
                    }

                    /** Properties of a HostConfig. */
                    interface IHostConfig {

                        /** HostConfig host */
                        host?: (string|null);

                        /** HostConfig capabilities */
                        capabilities?: (google.container.v1beta1.ContainerdConfig.RegistryHostConfig.HostCapability[]|null);

                        /** HostConfig overridePath */
                        overridePath?: (boolean|null);

                        /** HostConfig header */
                        header?: (google.container.v1beta1.ContainerdConfig.RegistryHostConfig.IRegistryHeader[]|null);

                        /** HostConfig ca */
                        ca?: (google.container.v1beta1.ContainerdConfig.RegistryHostConfig.ICertificateConfig[]|null);

                        /** HostConfig client */
                        client?: (google.container.v1beta1.ContainerdConfig.RegistryHostConfig.ICertificateConfigPair[]|null);

                        /** HostConfig dialTimeout */
                        dialTimeout?: (google.protobuf.IDuration|null);
                    }

                    /** Represents a HostConfig. */
                    class HostConfig implements IHostConfig {

                        /**
                         * Constructs a new HostConfig.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.container.v1beta1.ContainerdConfig.RegistryHostConfig.IHostConfig);

                        /** HostConfig host. */
                        public host: string;

                        /** HostConfig capabilities. */
                        public capabilities: google.container.v1beta1.ContainerdConfig.RegistryHostConfig.HostCapability[];

                        /** HostConfig overridePath. */
                        public overridePath: boolean;

                        /** HostConfig header. */
                        public header: google.container.v1beta1.ContainerdConfig.RegistryHostConfig.IRegistryHeader[];

                        /** HostConfig ca. */
                        public ca: google.container.v1beta1.ContainerdConfig.RegistryHostConfig.ICertificateConfig[];

                        /** HostConfig client. */
                        public client: google.container.v1beta1.ContainerdConfig.RegistryHostConfig.ICertificateConfigPair[];

                        /** HostConfig dialTimeout. */
                        public dialTimeout?: (google.protobuf.IDuration|null);

                        /**
                         * Creates a new HostConfig instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns HostConfig instance
                         */
                        public static create(properties?: google.container.v1beta1.ContainerdConfig.RegistryHostConfig.IHostConfig): google.container.v1beta1.ContainerdConfig.RegistryHostConfig.HostConfig;

                        /**
                         * Encodes the specified HostConfig message. Does not implicitly {@link google.container.v1beta1.ContainerdConfig.RegistryHostConfig.HostConfig.verify|verify} messages.
                         * @param message HostConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.container.v1beta1.ContainerdConfig.RegistryHostConfig.IHostConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified HostConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.ContainerdConfig.RegistryHostConfig.HostConfig.verify|verify} messages.
                         * @param message HostConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.container.v1beta1.ContainerdConfig.RegistryHostConfig.IHostConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a HostConfig message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns HostConfig
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.ContainerdConfig.RegistryHostConfig.HostConfig;

                        /**
                         * Decodes a HostConfig message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns HostConfig
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.ContainerdConfig.RegistryHostConfig.HostConfig;

                        /**
                         * Verifies a HostConfig message.
                         * @param message Plain 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 HostConfig message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns HostConfig
                         */
                        public static fromObject(object: { [k: string]: any }): google.container.v1beta1.ContainerdConfig.RegistryHostConfig.HostConfig;

                        /**
                         * Creates a plain object from a HostConfig message. Also converts values to other types if specified.
                         * @param message HostConfig
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.container.v1beta1.ContainerdConfig.RegistryHostConfig.HostConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this HostConfig to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for HostConfig
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }
                }
            }

            /** Properties of a HostMaintenancePolicy. */
            interface IHostMaintenancePolicy {

                /** HostMaintenancePolicy maintenanceInterval */
                maintenanceInterval?: (google.container.v1beta1.HostMaintenancePolicy.MaintenanceInterval|keyof typeof google.container.v1beta1.HostMaintenancePolicy.MaintenanceInterval|null);

                /** HostMaintenancePolicy opportunisticMaintenanceStrategy */
                opportunisticMaintenanceStrategy?: (google.container.v1beta1.HostMaintenancePolicy.IOpportunisticMaintenanceStrategy|null);
            }

            /** Represents a HostMaintenancePolicy. */
            class HostMaintenancePolicy implements IHostMaintenancePolicy {

                /**
                 * Constructs a new HostMaintenancePolicy.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IHostMaintenancePolicy);

                /** HostMaintenancePolicy maintenanceInterval. */
                public maintenanceInterval?: (google.container.v1beta1.HostMaintenancePolicy.MaintenanceInterval|keyof typeof google.container.v1beta1.HostMaintenancePolicy.MaintenanceInterval|null);

                /** HostMaintenancePolicy opportunisticMaintenanceStrategy. */
                public opportunisticMaintenanceStrategy?: (google.container.v1beta1.HostMaintenancePolicy.IOpportunisticMaintenanceStrategy|null);

                /** HostMaintenancePolicy maintenanceStrategy. */
                public maintenanceStrategy?: "opportunisticMaintenanceStrategy";

                /**
                 * Creates a new HostMaintenancePolicy instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns HostMaintenancePolicy instance
                 */
                public static create(properties?: google.container.v1beta1.IHostMaintenancePolicy): google.container.v1beta1.HostMaintenancePolicy;

                /**
                 * Encodes the specified HostMaintenancePolicy message. Does not implicitly {@link google.container.v1beta1.HostMaintenancePolicy.verify|verify} messages.
                 * @param message HostMaintenancePolicy message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IHostMaintenancePolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified HostMaintenancePolicy message, length delimited. Does not implicitly {@link google.container.v1beta1.HostMaintenancePolicy.verify|verify} messages.
                 * @param message HostMaintenancePolicy message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IHostMaintenancePolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a HostMaintenancePolicy message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns HostMaintenancePolicy
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.HostMaintenancePolicy;

                /**
                 * Decodes a HostMaintenancePolicy message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns HostMaintenancePolicy
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.HostMaintenancePolicy;

                /**
                 * Verifies a HostMaintenancePolicy message.
                 * @param message Plain 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 HostMaintenancePolicy message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns HostMaintenancePolicy
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.HostMaintenancePolicy;

                /**
                 * Creates a plain object from a HostMaintenancePolicy message. Also converts values to other types if specified.
                 * @param message HostMaintenancePolicy
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.HostMaintenancePolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this HostMaintenancePolicy to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for HostMaintenancePolicy
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace HostMaintenancePolicy {

                /** MaintenanceInterval enum. */
                enum MaintenanceInterval {
                    MAINTENANCE_INTERVAL_UNSPECIFIED = 0,
                    AS_NEEDED = 1,
                    PERIODIC = 2
                }

                /** Properties of an OpportunisticMaintenanceStrategy. */
                interface IOpportunisticMaintenanceStrategy {

                    /** OpportunisticMaintenanceStrategy nodeIdleTimeWindow */
                    nodeIdleTimeWindow?: (google.protobuf.IDuration|null);

                    /** OpportunisticMaintenanceStrategy maintenanceAvailabilityWindow */
                    maintenanceAvailabilityWindow?: (google.protobuf.IDuration|null);

                    /** OpportunisticMaintenanceStrategy minNodesPerPool */
                    minNodesPerPool?: (number|Long|string|null);
                }

                /** Represents an OpportunisticMaintenanceStrategy. */
                class OpportunisticMaintenanceStrategy implements IOpportunisticMaintenanceStrategy {

                    /**
                     * Constructs a new OpportunisticMaintenanceStrategy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.container.v1beta1.HostMaintenancePolicy.IOpportunisticMaintenanceStrategy);

                    /** OpportunisticMaintenanceStrategy nodeIdleTimeWindow. */
                    public nodeIdleTimeWindow?: (google.protobuf.IDuration|null);

                    /** OpportunisticMaintenanceStrategy maintenanceAvailabilityWindow. */
                    public maintenanceAvailabilityWindow?: (google.protobuf.IDuration|null);

                    /** OpportunisticMaintenanceStrategy minNodesPerPool. */
                    public minNodesPerPool?: (number|Long|string|null);

                    /**
                     * Creates a new OpportunisticMaintenanceStrategy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns OpportunisticMaintenanceStrategy instance
                     */
                    public static create(properties?: google.container.v1beta1.HostMaintenancePolicy.IOpportunisticMaintenanceStrategy): google.container.v1beta1.HostMaintenancePolicy.OpportunisticMaintenanceStrategy;

                    /**
                     * Encodes the specified OpportunisticMaintenanceStrategy message. Does not implicitly {@link google.container.v1beta1.HostMaintenancePolicy.OpportunisticMaintenanceStrategy.verify|verify} messages.
                     * @param message OpportunisticMaintenanceStrategy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.container.v1beta1.HostMaintenancePolicy.IOpportunisticMaintenanceStrategy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified OpportunisticMaintenanceStrategy message, length delimited. Does not implicitly {@link google.container.v1beta1.HostMaintenancePolicy.OpportunisticMaintenanceStrategy.verify|verify} messages.
                     * @param message OpportunisticMaintenanceStrategy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.container.v1beta1.HostMaintenancePolicy.IOpportunisticMaintenanceStrategy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an OpportunisticMaintenanceStrategy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns OpportunisticMaintenanceStrategy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.HostMaintenancePolicy.OpportunisticMaintenanceStrategy;

                    /**
                     * Decodes an OpportunisticMaintenanceStrategy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns OpportunisticMaintenanceStrategy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.HostMaintenancePolicy.OpportunisticMaintenanceStrategy;

                    /**
                     * Verifies an OpportunisticMaintenanceStrategy message.
                     * @param message Plain 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 OpportunisticMaintenanceStrategy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns OpportunisticMaintenanceStrategy
                     */
                    public static fromObject(object: { [k: string]: any }): google.container.v1beta1.HostMaintenancePolicy.OpportunisticMaintenanceStrategy;

                    /**
                     * Creates a plain object from an OpportunisticMaintenanceStrategy message. Also converts values to other types if specified.
                     * @param message OpportunisticMaintenanceStrategy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.container.v1beta1.HostMaintenancePolicy.OpportunisticMaintenanceStrategy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this OpportunisticMaintenanceStrategy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for OpportunisticMaintenanceStrategy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }
            }

            /** Properties of a NodeTaint. */
            interface INodeTaint {

                /** NodeTaint key */
                key?: (string|null);

                /** NodeTaint value */
                value?: (string|null);

                /** NodeTaint effect */
                effect?: (google.container.v1beta1.NodeTaint.Effect|keyof typeof google.container.v1beta1.NodeTaint.Effect|null);
            }

            /** Represents a NodeTaint. */
            class NodeTaint implements INodeTaint {

                /**
                 * Constructs a new NodeTaint.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.INodeTaint);

                /** NodeTaint key. */
                public key: string;

                /** NodeTaint value. */
                public value: string;

                /** NodeTaint effect. */
                public effect: (google.container.v1beta1.NodeTaint.Effect|keyof typeof google.container.v1beta1.NodeTaint.Effect);

                /**
                 * Creates a new NodeTaint instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns NodeTaint instance
                 */
                public static create(properties?: google.container.v1beta1.INodeTaint): google.container.v1beta1.NodeTaint;

                /**
                 * Encodes the specified NodeTaint message. Does not implicitly {@link google.container.v1beta1.NodeTaint.verify|verify} messages.
                 * @param message NodeTaint message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.INodeTaint, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified NodeTaint message, length delimited. Does not implicitly {@link google.container.v1beta1.NodeTaint.verify|verify} messages.
                 * @param message NodeTaint message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.INodeTaint, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a NodeTaint message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns NodeTaint
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.NodeTaint;

                /**
                 * Decodes a NodeTaint message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns NodeTaint
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.NodeTaint;

                /**
                 * Verifies a NodeTaint message.
                 * @param message Plain 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 NodeTaint message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns NodeTaint
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.NodeTaint;

                /**
                 * Creates a plain object from a NodeTaint message. Also converts values to other types if specified.
                 * @param message NodeTaint
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.NodeTaint, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this NodeTaint to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for NodeTaint
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace NodeTaint {

                /** Effect enum. */
                enum Effect {
                    EFFECT_UNSPECIFIED = 0,
                    NO_SCHEDULE = 1,
                    PREFER_NO_SCHEDULE = 2,
                    NO_EXECUTE = 3
                }
            }

            /** Properties of a NodeTaints. */
            interface INodeTaints {

                /** NodeTaints taints */
                taints?: (google.container.v1beta1.INodeTaint[]|null);
            }

            /** Represents a NodeTaints. */
            class NodeTaints implements INodeTaints {

                /**
                 * Constructs a new NodeTaints.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.INodeTaints);

                /** NodeTaints taints. */
                public taints: google.container.v1beta1.INodeTaint[];

                /**
                 * Creates a new NodeTaints instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns NodeTaints instance
                 */
                public static create(properties?: google.container.v1beta1.INodeTaints): google.container.v1beta1.NodeTaints;

                /**
                 * Encodes the specified NodeTaints message. Does not implicitly {@link google.container.v1beta1.NodeTaints.verify|verify} messages.
                 * @param message NodeTaints message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.INodeTaints, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified NodeTaints message, length delimited. Does not implicitly {@link google.container.v1beta1.NodeTaints.verify|verify} messages.
                 * @param message NodeTaints message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.INodeTaints, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a NodeTaints message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns NodeTaints
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.NodeTaints;

                /**
                 * Decodes a NodeTaints message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns NodeTaints
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.NodeTaints;

                /**
                 * Verifies a NodeTaints message.
                 * @param message Plain 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 NodeTaints message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns NodeTaints
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.NodeTaints;

                /**
                 * Creates a plain object from a NodeTaints message. Also converts values to other types if specified.
                 * @param message NodeTaints
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.NodeTaints, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this NodeTaints to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for NodeTaints
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a NodeLabels. */
            interface INodeLabels {

                /** NodeLabels labels */
                labels?: ({ [k: string]: string }|null);
            }

            /** Represents a NodeLabels. */
            class NodeLabels implements INodeLabels {

                /**
                 * Constructs a new NodeLabels.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.INodeLabels);

                /** NodeLabels labels. */
                public labels: { [k: string]: string };

                /**
                 * Creates a new NodeLabels instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns NodeLabels instance
                 */
                public static create(properties?: google.container.v1beta1.INodeLabels): google.container.v1beta1.NodeLabels;

                /**
                 * Encodes the specified NodeLabels message. Does not implicitly {@link google.container.v1beta1.NodeLabels.verify|verify} messages.
                 * @param message NodeLabels message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.INodeLabels, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified NodeLabels message, length delimited. Does not implicitly {@link google.container.v1beta1.NodeLabels.verify|verify} messages.
                 * @param message NodeLabels message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.INodeLabels, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a NodeLabels message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns NodeLabels
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.NodeLabels;

                /**
                 * Decodes a NodeLabels message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns NodeLabels
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.NodeLabels;

                /**
                 * Verifies a NodeLabels message.
                 * @param message Plain 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 NodeLabels message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns NodeLabels
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.NodeLabels;

                /**
                 * Creates a plain object from a NodeLabels message. Also converts values to other types if specified.
                 * @param message NodeLabels
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.NodeLabels, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this NodeLabels to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for NodeLabels
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a ResourceLabels. */
            interface IResourceLabels {

                /** ResourceLabels labels */
                labels?: ({ [k: string]: string }|null);
            }

            /** Represents a ResourceLabels. */
            class ResourceLabels implements IResourceLabels {

                /**
                 * Constructs a new ResourceLabels.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IResourceLabels);

                /** ResourceLabels labels. */
                public labels: { [k: string]: string };

                /**
                 * Creates a new ResourceLabels instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ResourceLabels instance
                 */
                public static create(properties?: google.container.v1beta1.IResourceLabels): google.container.v1beta1.ResourceLabels;

                /**
                 * Encodes the specified ResourceLabels message. Does not implicitly {@link google.container.v1beta1.ResourceLabels.verify|verify} messages.
                 * @param message ResourceLabels message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IResourceLabels, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified ResourceLabels message, length delimited. Does not implicitly {@link google.container.v1beta1.ResourceLabels.verify|verify} messages.
                 * @param message ResourceLabels message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IResourceLabels, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a ResourceLabels message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ResourceLabels
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.ResourceLabels;

                /**
                 * Decodes a ResourceLabels message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ResourceLabels
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.ResourceLabels;

                /**
                 * Verifies a ResourceLabels message.
                 * @param message Plain 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 ResourceLabels message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ResourceLabels
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.ResourceLabels;

                /**
                 * Creates a plain object from a ResourceLabels message. Also converts values to other types if specified.
                 * @param message ResourceLabels
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.ResourceLabels, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ResourceLabels to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for ResourceLabels
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a NetworkTags. */
            interface INetworkTags {

                /** NetworkTags tags */
                tags?: (string[]|null);
            }

            /** Represents a NetworkTags. */
            class NetworkTags implements INetworkTags {

                /**
                 * Constructs a new NetworkTags.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.INetworkTags);

                /** NetworkTags tags. */
                public tags: string[];

                /**
                 * Creates a new NetworkTags instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns NetworkTags instance
                 */
                public static create(properties?: google.container.v1beta1.INetworkTags): google.container.v1beta1.NetworkTags;

                /**
                 * Encodes the specified NetworkTags message. Does not implicitly {@link google.container.v1beta1.NetworkTags.verify|verify} messages.
                 * @param message NetworkTags message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.INetworkTags, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified NetworkTags message, length delimited. Does not implicitly {@link google.container.v1beta1.NetworkTags.verify|verify} messages.
                 * @param message NetworkTags message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.INetworkTags, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a NetworkTags message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns NetworkTags
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.NetworkTags;

                /**
                 * Decodes a NetworkTags message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns NetworkTags
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.NetworkTags;

                /**
                 * Verifies a NetworkTags message.
                 * @param message Plain 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 NetworkTags message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns NetworkTags
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.NetworkTags;

                /**
                 * Creates a plain object from a NetworkTags message. Also converts values to other types if specified.
                 * @param message NetworkTags
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.NetworkTags, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this NetworkTags to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for NetworkTags
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a MasterAuth. */
            interface IMasterAuth {

                /** MasterAuth username */
                username?: (string|null);

                /** MasterAuth password */
                password?: (string|null);

                /** MasterAuth clientCertificateConfig */
                clientCertificateConfig?: (google.container.v1beta1.IClientCertificateConfig|null);

                /** MasterAuth clusterCaCertificate */
                clusterCaCertificate?: (string|null);

                /** MasterAuth clientCertificate */
                clientCertificate?: (string|null);

                /** MasterAuth clientKey */
                clientKey?: (string|null);
            }

            /** Represents a MasterAuth. */
            class MasterAuth implements IMasterAuth {

                /**
                 * Constructs a new MasterAuth.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IMasterAuth);

                /** MasterAuth username. */
                public username: string;

                /** MasterAuth password. */
                public password: string;

                /** MasterAuth clientCertificateConfig. */
                public clientCertificateConfig?: (google.container.v1beta1.IClientCertificateConfig|null);

                /** MasterAuth clusterCaCertificate. */
                public clusterCaCertificate: string;

                /** MasterAuth clientCertificate. */
                public clientCertificate: string;

                /** MasterAuth clientKey. */
                public clientKey: string;

                /**
                 * Creates a new MasterAuth instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns MasterAuth instance
                 */
                public static create(properties?: google.container.v1beta1.IMasterAuth): google.container.v1beta1.MasterAuth;

                /**
                 * Encodes the specified MasterAuth message. Does not implicitly {@link google.container.v1beta1.MasterAuth.verify|verify} messages.
                 * @param message MasterAuth message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IMasterAuth, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified MasterAuth message, length delimited. Does not implicitly {@link google.container.v1beta1.MasterAuth.verify|verify} messages.
                 * @param message MasterAuth message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IMasterAuth, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a MasterAuth message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns MasterAuth
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.MasterAuth;

                /**
                 * Decodes a MasterAuth message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns MasterAuth
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.MasterAuth;

                /**
                 * Verifies a MasterAuth message.
                 * @param message Plain 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 MasterAuth message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns MasterAuth
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.MasterAuth;

                /**
                 * Creates a plain object from a MasterAuth message. Also converts values to other types if specified.
                 * @param message MasterAuth
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.MasterAuth, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this MasterAuth to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for MasterAuth
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a ClientCertificateConfig. */
            interface IClientCertificateConfig {

                /** ClientCertificateConfig issueClientCertificate */
                issueClientCertificate?: (boolean|null);
            }

            /** Represents a ClientCertificateConfig. */
            class ClientCertificateConfig implements IClientCertificateConfig {

                /**
                 * Constructs a new ClientCertificateConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IClientCertificateConfig);

                /** ClientCertificateConfig issueClientCertificate. */
                public issueClientCertificate: boolean;

                /**
                 * Creates a new ClientCertificateConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ClientCertificateConfig instance
                 */
                public static create(properties?: google.container.v1beta1.IClientCertificateConfig): google.container.v1beta1.ClientCertificateConfig;

                /**
                 * Encodes the specified ClientCertificateConfig message. Does not implicitly {@link google.container.v1beta1.ClientCertificateConfig.verify|verify} messages.
                 * @param message ClientCertificateConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IClientCertificateConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified ClientCertificateConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.ClientCertificateConfig.verify|verify} messages.
                 * @param message ClientCertificateConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IClientCertificateConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a ClientCertificateConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ClientCertificateConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.ClientCertificateConfig;

                /**
                 * Decodes a ClientCertificateConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ClientCertificateConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.ClientCertificateConfig;

                /**
                 * Verifies a ClientCertificateConfig message.
                 * @param message Plain 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 ClientCertificateConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ClientCertificateConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.ClientCertificateConfig;

                /**
                 * Creates a plain object from a ClientCertificateConfig message. Also converts values to other types if specified.
                 * @param message ClientCertificateConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.ClientCertificateConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ClientCertificateConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for ClientCertificateConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of an AddonsConfig. */
            interface IAddonsConfig {

                /** AddonsConfig httpLoadBalancing */
                httpLoadBalancing?: (google.container.v1beta1.IHttpLoadBalancing|null);

                /** AddonsConfig horizontalPodAutoscaling */
                horizontalPodAutoscaling?: (google.container.v1beta1.IHorizontalPodAutoscaling|null);

                /** AddonsConfig kubernetesDashboard */
                kubernetesDashboard?: (google.container.v1beta1.IKubernetesDashboard|null);

                /** AddonsConfig networkPolicyConfig */
                networkPolicyConfig?: (google.container.v1beta1.INetworkPolicyConfig|null);

                /** AddonsConfig istioConfig */
                istioConfig?: (google.container.v1beta1.IIstioConfig|null);

                /** AddonsConfig cloudRunConfig */
                cloudRunConfig?: (google.container.v1beta1.ICloudRunConfig|null);

                /** AddonsConfig dnsCacheConfig */
                dnsCacheConfig?: (google.container.v1beta1.IDnsCacheConfig|null);

                /** AddonsConfig configConnectorConfig */
                configConnectorConfig?: (google.container.v1beta1.IConfigConnectorConfig|null);

                /** AddonsConfig gcePersistentDiskCsiDriverConfig */
                gcePersistentDiskCsiDriverConfig?: (google.container.v1beta1.IGcePersistentDiskCsiDriverConfig|null);

                /** AddonsConfig kalmConfig */
                kalmConfig?: (google.container.v1beta1.IKalmConfig|null);

                /** AddonsConfig gcpFilestoreCsiDriverConfig */
                gcpFilestoreCsiDriverConfig?: (google.container.v1beta1.IGcpFilestoreCsiDriverConfig|null);

                /** AddonsConfig gkeBackupAgentConfig */
                gkeBackupAgentConfig?: (google.container.v1beta1.IGkeBackupAgentConfig|null);

                /** AddonsConfig gcsFuseCsiDriverConfig */
                gcsFuseCsiDriverConfig?: (google.container.v1beta1.IGcsFuseCsiDriverConfig|null);

                /** AddonsConfig statefulHaConfig */
                statefulHaConfig?: (google.container.v1beta1.IStatefulHAConfig|null);

                /** AddonsConfig parallelstoreCsiDriverConfig */
                parallelstoreCsiDriverConfig?: (google.container.v1beta1.IParallelstoreCsiDriverConfig|null);

                /** AddonsConfig rayOperatorConfig */
                rayOperatorConfig?: (google.container.v1beta1.IRayOperatorConfig|null);

                /** AddonsConfig highScaleCheckpointingConfig */
                highScaleCheckpointingConfig?: (google.container.v1beta1.IHighScaleCheckpointingConfig|null);

                /** AddonsConfig lustreCsiDriverConfig */
                lustreCsiDriverConfig?: (google.container.v1beta1.ILustreCsiDriverConfig|null);

                /** AddonsConfig podSnapshotConfig */
                podSnapshotConfig?: (google.container.v1beta1.IPodSnapshotConfig|null);

                /** AddonsConfig slurmOperatorConfig */
                slurmOperatorConfig?: (google.container.v1beta1.ISlurmOperatorConfig|null);

                /** AddonsConfig sliceControllerConfig */
                sliceControllerConfig?: (google.container.v1beta1.ISliceControllerConfig|null);

                /** AddonsConfig agentSandboxConfig */
                agentSandboxConfig?: (google.container.v1beta1.IAgentSandboxConfig|null);

                /** AddonsConfig nodeReadinessConfig */
                nodeReadinessConfig?: (google.container.v1beta1.INodeReadinessConfig|null);
            }

            /** Represents an AddonsConfig. */
            class AddonsConfig implements IAddonsConfig {

                /**
                 * Constructs a new AddonsConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IAddonsConfig);

                /** AddonsConfig httpLoadBalancing. */
                public httpLoadBalancing?: (google.container.v1beta1.IHttpLoadBalancing|null);

                /** AddonsConfig horizontalPodAutoscaling. */
                public horizontalPodAutoscaling?: (google.container.v1beta1.IHorizontalPodAutoscaling|null);

                /** AddonsConfig kubernetesDashboard. */
                public kubernetesDashboard?: (google.container.v1beta1.IKubernetesDashboard|null);

                /** AddonsConfig networkPolicyConfig. */
                public networkPolicyConfig?: (google.container.v1beta1.INetworkPolicyConfig|null);

                /** AddonsConfig istioConfig. */
                public istioConfig?: (google.container.v1beta1.IIstioConfig|null);

                /** AddonsConfig cloudRunConfig. */
                public cloudRunConfig?: (google.container.v1beta1.ICloudRunConfig|null);

                /** AddonsConfig dnsCacheConfig. */
                public dnsCacheConfig?: (google.container.v1beta1.IDnsCacheConfig|null);

                /** AddonsConfig configConnectorConfig. */
                public configConnectorConfig?: (google.container.v1beta1.IConfigConnectorConfig|null);

                /** AddonsConfig gcePersistentDiskCsiDriverConfig. */
                public gcePersistentDiskCsiDriverConfig?: (google.container.v1beta1.IGcePersistentDiskCsiDriverConfig|null);

                /** AddonsConfig kalmConfig. */
                public kalmConfig?: (google.container.v1beta1.IKalmConfig|null);

                /** AddonsConfig gcpFilestoreCsiDriverConfig. */
                public gcpFilestoreCsiDriverConfig?: (google.container.v1beta1.IGcpFilestoreCsiDriverConfig|null);

                /** AddonsConfig gkeBackupAgentConfig. */
                public gkeBackupAgentConfig?: (google.container.v1beta1.IGkeBackupAgentConfig|null);

                /** AddonsConfig gcsFuseCsiDriverConfig. */
                public gcsFuseCsiDriverConfig?: (google.container.v1beta1.IGcsFuseCsiDriverConfig|null);

                /** AddonsConfig statefulHaConfig. */
                public statefulHaConfig?: (google.container.v1beta1.IStatefulHAConfig|null);

                /** AddonsConfig parallelstoreCsiDriverConfig. */
                public parallelstoreCsiDriverConfig?: (google.container.v1beta1.IParallelstoreCsiDriverConfig|null);

                /** AddonsConfig rayOperatorConfig. */
                public rayOperatorConfig?: (google.container.v1beta1.IRayOperatorConfig|null);

                /** AddonsConfig highScaleCheckpointingConfig. */
                public highScaleCheckpointingConfig?: (google.container.v1beta1.IHighScaleCheckpointingConfig|null);

                /** AddonsConfig lustreCsiDriverConfig. */
                public lustreCsiDriverConfig?: (google.container.v1beta1.ILustreCsiDriverConfig|null);

                /** AddonsConfig podSnapshotConfig. */
                public podSnapshotConfig?: (google.container.v1beta1.IPodSnapshotConfig|null);

                /** AddonsConfig slurmOperatorConfig. */
                public slurmOperatorConfig?: (google.container.v1beta1.ISlurmOperatorConfig|null);

                /** AddonsConfig sliceControllerConfig. */
                public sliceControllerConfig?: (google.container.v1beta1.ISliceControllerConfig|null);

                /** AddonsConfig agentSandboxConfig. */
                public agentSandboxConfig?: (google.container.v1beta1.IAgentSandboxConfig|null);

                /** AddonsConfig nodeReadinessConfig. */
                public nodeReadinessConfig?: (google.container.v1beta1.INodeReadinessConfig|null);

                /**
                 * Creates a new AddonsConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns AddonsConfig instance
                 */
                public static create(properties?: google.container.v1beta1.IAddonsConfig): google.container.v1beta1.AddonsConfig;

                /**
                 * Encodes the specified AddonsConfig message. Does not implicitly {@link google.container.v1beta1.AddonsConfig.verify|verify} messages.
                 * @param message AddonsConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IAddonsConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified AddonsConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.AddonsConfig.verify|verify} messages.
                 * @param message AddonsConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IAddonsConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes an AddonsConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns AddonsConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.AddonsConfig;

                /**
                 * Decodes an AddonsConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns AddonsConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.AddonsConfig;

                /**
                 * Verifies an AddonsConfig message.
                 * @param message Plain 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 AddonsConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns AddonsConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.AddonsConfig;

                /**
                 * Creates a plain object from an AddonsConfig message. Also converts values to other types if specified.
                 * @param message AddonsConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.AddonsConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this AddonsConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for AddonsConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a HttpLoadBalancing. */
            interface IHttpLoadBalancing {

                /** HttpLoadBalancing disabled */
                disabled?: (boolean|null);
            }

            /** Represents a HttpLoadBalancing. */
            class HttpLoadBalancing implements IHttpLoadBalancing {

                /**
                 * Constructs a new HttpLoadBalancing.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IHttpLoadBalancing);

                /** HttpLoadBalancing disabled. */
                public disabled: boolean;

                /**
                 * Creates a new HttpLoadBalancing instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns HttpLoadBalancing instance
                 */
                public static create(properties?: google.container.v1beta1.IHttpLoadBalancing): google.container.v1beta1.HttpLoadBalancing;

                /**
                 * Encodes the specified HttpLoadBalancing message. Does not implicitly {@link google.container.v1beta1.HttpLoadBalancing.verify|verify} messages.
                 * @param message HttpLoadBalancing message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IHttpLoadBalancing, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified HttpLoadBalancing message, length delimited. Does not implicitly {@link google.container.v1beta1.HttpLoadBalancing.verify|verify} messages.
                 * @param message HttpLoadBalancing message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IHttpLoadBalancing, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a HttpLoadBalancing message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns HttpLoadBalancing
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.HttpLoadBalancing;

                /**
                 * Decodes a HttpLoadBalancing message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns HttpLoadBalancing
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.HttpLoadBalancing;

                /**
                 * Verifies a HttpLoadBalancing message.
                 * @param message Plain 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 HttpLoadBalancing message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns HttpLoadBalancing
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.HttpLoadBalancing;

                /**
                 * Creates a plain object from a HttpLoadBalancing message. Also converts values to other types if specified.
                 * @param message HttpLoadBalancing
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.HttpLoadBalancing, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this HttpLoadBalancing to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for HttpLoadBalancing
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a HorizontalPodAutoscaling. */
            interface IHorizontalPodAutoscaling {

                /** HorizontalPodAutoscaling disabled */
                disabled?: (boolean|null);
            }

            /** Represents a HorizontalPodAutoscaling. */
            class HorizontalPodAutoscaling implements IHorizontalPodAutoscaling {

                /**
                 * Constructs a new HorizontalPodAutoscaling.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IHorizontalPodAutoscaling);

                /** HorizontalPodAutoscaling disabled. */
                public disabled: boolean;

                /**
                 * Creates a new HorizontalPodAutoscaling instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns HorizontalPodAutoscaling instance
                 */
                public static create(properties?: google.container.v1beta1.IHorizontalPodAutoscaling): google.container.v1beta1.HorizontalPodAutoscaling;

                /**
                 * Encodes the specified HorizontalPodAutoscaling message. Does not implicitly {@link google.container.v1beta1.HorizontalPodAutoscaling.verify|verify} messages.
                 * @param message HorizontalPodAutoscaling message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IHorizontalPodAutoscaling, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified HorizontalPodAutoscaling message, length delimited. Does not implicitly {@link google.container.v1beta1.HorizontalPodAutoscaling.verify|verify} messages.
                 * @param message HorizontalPodAutoscaling message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IHorizontalPodAutoscaling, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a HorizontalPodAutoscaling message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns HorizontalPodAutoscaling
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.HorizontalPodAutoscaling;

                /**
                 * Decodes a HorizontalPodAutoscaling message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns HorizontalPodAutoscaling
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.HorizontalPodAutoscaling;

                /**
                 * Verifies a HorizontalPodAutoscaling message.
                 * @param message Plain 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 HorizontalPodAutoscaling message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns HorizontalPodAutoscaling
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.HorizontalPodAutoscaling;

                /**
                 * Creates a plain object from a HorizontalPodAutoscaling message. Also converts values to other types if specified.
                 * @param message HorizontalPodAutoscaling
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.HorizontalPodAutoscaling, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this HorizontalPodAutoscaling to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for HorizontalPodAutoscaling
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a KubernetesDashboard. */
            interface IKubernetesDashboard {

                /** KubernetesDashboard disabled */
                disabled?: (boolean|null);
            }

            /** Represents a KubernetesDashboard. */
            class KubernetesDashboard implements IKubernetesDashboard {

                /**
                 * Constructs a new KubernetesDashboard.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IKubernetesDashboard);

                /** KubernetesDashboard disabled. */
                public disabled: boolean;

                /**
                 * Creates a new KubernetesDashboard instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns KubernetesDashboard instance
                 */
                public static create(properties?: google.container.v1beta1.IKubernetesDashboard): google.container.v1beta1.KubernetesDashboard;

                /**
                 * Encodes the specified KubernetesDashboard message. Does not implicitly {@link google.container.v1beta1.KubernetesDashboard.verify|verify} messages.
                 * @param message KubernetesDashboard message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IKubernetesDashboard, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified KubernetesDashboard message, length delimited. Does not implicitly {@link google.container.v1beta1.KubernetesDashboard.verify|verify} messages.
                 * @param message KubernetesDashboard message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IKubernetesDashboard, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a KubernetesDashboard message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns KubernetesDashboard
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.KubernetesDashboard;

                /**
                 * Decodes a KubernetesDashboard message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns KubernetesDashboard
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.KubernetesDashboard;

                /**
                 * Verifies a KubernetesDashboard message.
                 * @param message Plain 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 KubernetesDashboard message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns KubernetesDashboard
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.KubernetesDashboard;

                /**
                 * Creates a plain object from a KubernetesDashboard message. Also converts values to other types if specified.
                 * @param message KubernetesDashboard
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.KubernetesDashboard, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this KubernetesDashboard to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for KubernetesDashboard
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a NetworkPolicyConfig. */
            interface INetworkPolicyConfig {

                /** NetworkPolicyConfig disabled */
                disabled?: (boolean|null);
            }

            /** Represents a NetworkPolicyConfig. */
            class NetworkPolicyConfig implements INetworkPolicyConfig {

                /**
                 * Constructs a new NetworkPolicyConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.INetworkPolicyConfig);

                /** NetworkPolicyConfig disabled. */
                public disabled: boolean;

                /**
                 * Creates a new NetworkPolicyConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns NetworkPolicyConfig instance
                 */
                public static create(properties?: google.container.v1beta1.INetworkPolicyConfig): google.container.v1beta1.NetworkPolicyConfig;

                /**
                 * Encodes the specified NetworkPolicyConfig message. Does not implicitly {@link google.container.v1beta1.NetworkPolicyConfig.verify|verify} messages.
                 * @param message NetworkPolicyConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.INetworkPolicyConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified NetworkPolicyConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.NetworkPolicyConfig.verify|verify} messages.
                 * @param message NetworkPolicyConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.INetworkPolicyConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a NetworkPolicyConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns NetworkPolicyConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.NetworkPolicyConfig;

                /**
                 * Decodes a NetworkPolicyConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns NetworkPolicyConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.NetworkPolicyConfig;

                /**
                 * Verifies a NetworkPolicyConfig message.
                 * @param message Plain 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 NetworkPolicyConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns NetworkPolicyConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.NetworkPolicyConfig;

                /**
                 * Creates a plain object from a NetworkPolicyConfig message. Also converts values to other types if specified.
                 * @param message NetworkPolicyConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.NetworkPolicyConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this NetworkPolicyConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for NetworkPolicyConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a DnsCacheConfig. */
            interface IDnsCacheConfig {

                /** DnsCacheConfig enabled */
                enabled?: (boolean|null);
            }

            /** Represents a DnsCacheConfig. */
            class DnsCacheConfig implements IDnsCacheConfig {

                /**
                 * Constructs a new DnsCacheConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IDnsCacheConfig);

                /** DnsCacheConfig enabled. */
                public enabled: boolean;

                /**
                 * Creates a new DnsCacheConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns DnsCacheConfig instance
                 */
                public static create(properties?: google.container.v1beta1.IDnsCacheConfig): google.container.v1beta1.DnsCacheConfig;

                /**
                 * Encodes the specified DnsCacheConfig message. Does not implicitly {@link google.container.v1beta1.DnsCacheConfig.verify|verify} messages.
                 * @param message DnsCacheConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IDnsCacheConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified DnsCacheConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.DnsCacheConfig.verify|verify} messages.
                 * @param message DnsCacheConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IDnsCacheConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a DnsCacheConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns DnsCacheConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.DnsCacheConfig;

                /**
                 * Decodes a DnsCacheConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns DnsCacheConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.DnsCacheConfig;

                /**
                 * Verifies a DnsCacheConfig message.
                 * @param message Plain 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 DnsCacheConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns DnsCacheConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.DnsCacheConfig;

                /**
                 * Creates a plain object from a DnsCacheConfig message. Also converts values to other types if specified.
                 * @param message DnsCacheConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.DnsCacheConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this DnsCacheConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for DnsCacheConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a KalmConfig. */
            interface IKalmConfig {

                /** KalmConfig enabled */
                enabled?: (boolean|null);
            }

            /** Represents a KalmConfig. */
            class KalmConfig implements IKalmConfig {

                /**
                 * Constructs a new KalmConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IKalmConfig);

                /** KalmConfig enabled. */
                public enabled: boolean;

                /**
                 * Creates a new KalmConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns KalmConfig instance
                 */
                public static create(properties?: google.container.v1beta1.IKalmConfig): google.container.v1beta1.KalmConfig;

                /**
                 * Encodes the specified KalmConfig message. Does not implicitly {@link google.container.v1beta1.KalmConfig.verify|verify} messages.
                 * @param message KalmConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IKalmConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified KalmConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.KalmConfig.verify|verify} messages.
                 * @param message KalmConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IKalmConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a KalmConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns KalmConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.KalmConfig;

                /**
                 * Decodes a KalmConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns KalmConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.KalmConfig;

                /**
                 * Verifies a KalmConfig message.
                 * @param message Plain 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 KalmConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns KalmConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.KalmConfig;

                /**
                 * Creates a plain object from a KalmConfig message. Also converts values to other types if specified.
                 * @param message KalmConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.KalmConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this KalmConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for KalmConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a GkeBackupAgentConfig. */
            interface IGkeBackupAgentConfig {

                /** GkeBackupAgentConfig enabled */
                enabled?: (boolean|null);
            }

            /** Represents a GkeBackupAgentConfig. */
            class GkeBackupAgentConfig implements IGkeBackupAgentConfig {

                /**
                 * Constructs a new GkeBackupAgentConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IGkeBackupAgentConfig);

                /** GkeBackupAgentConfig enabled. */
                public enabled: boolean;

                /**
                 * Creates a new GkeBackupAgentConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns GkeBackupAgentConfig instance
                 */
                public static create(properties?: google.container.v1beta1.IGkeBackupAgentConfig): google.container.v1beta1.GkeBackupAgentConfig;

                /**
                 * Encodes the specified GkeBackupAgentConfig message. Does not implicitly {@link google.container.v1beta1.GkeBackupAgentConfig.verify|verify} messages.
                 * @param message GkeBackupAgentConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IGkeBackupAgentConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified GkeBackupAgentConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.GkeBackupAgentConfig.verify|verify} messages.
                 * @param message GkeBackupAgentConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IGkeBackupAgentConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a GkeBackupAgentConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns GkeBackupAgentConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.GkeBackupAgentConfig;

                /**
                 * Decodes a GkeBackupAgentConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns GkeBackupAgentConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.GkeBackupAgentConfig;

                /**
                 * Verifies a GkeBackupAgentConfig message.
                 * @param message Plain 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 GkeBackupAgentConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns GkeBackupAgentConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.GkeBackupAgentConfig;

                /**
                 * Creates a plain object from a GkeBackupAgentConfig message. Also converts values to other types if specified.
                 * @param message GkeBackupAgentConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.GkeBackupAgentConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this GkeBackupAgentConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for GkeBackupAgentConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a StatefulHAConfig. */
            interface IStatefulHAConfig {

                /** StatefulHAConfig enabled */
                enabled?: (boolean|null);
            }

            /** Represents a StatefulHAConfig. */
            class StatefulHAConfig implements IStatefulHAConfig {

                /**
                 * Constructs a new StatefulHAConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IStatefulHAConfig);

                /** StatefulHAConfig enabled. */
                public enabled: boolean;

                /**
                 * Creates a new StatefulHAConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns StatefulHAConfig instance
                 */
                public static create(properties?: google.container.v1beta1.IStatefulHAConfig): google.container.v1beta1.StatefulHAConfig;

                /**
                 * Encodes the specified StatefulHAConfig message. Does not implicitly {@link google.container.v1beta1.StatefulHAConfig.verify|verify} messages.
                 * @param message StatefulHAConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IStatefulHAConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified StatefulHAConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.StatefulHAConfig.verify|verify} messages.
                 * @param message StatefulHAConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IStatefulHAConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a StatefulHAConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns StatefulHAConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.StatefulHAConfig;

                /**
                 * Decodes a StatefulHAConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns StatefulHAConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.StatefulHAConfig;

                /**
                 * Verifies a StatefulHAConfig message.
                 * @param message Plain 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 StatefulHAConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns StatefulHAConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.StatefulHAConfig;

                /**
                 * Creates a plain object from a StatefulHAConfig message. Also converts values to other types if specified.
                 * @param message StatefulHAConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.StatefulHAConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this StatefulHAConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for StatefulHAConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a ConfigConnectorConfig. */
            interface IConfigConnectorConfig {

                /** ConfigConnectorConfig enabled */
                enabled?: (boolean|null);
            }

            /** Represents a ConfigConnectorConfig. */
            class ConfigConnectorConfig implements IConfigConnectorConfig {

                /**
                 * Constructs a new ConfigConnectorConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IConfigConnectorConfig);

                /** ConfigConnectorConfig enabled. */
                public enabled: boolean;

                /**
                 * Creates a new ConfigConnectorConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ConfigConnectorConfig instance
                 */
                public static create(properties?: google.container.v1beta1.IConfigConnectorConfig): google.container.v1beta1.ConfigConnectorConfig;

                /**
                 * Encodes the specified ConfigConnectorConfig message. Does not implicitly {@link google.container.v1beta1.ConfigConnectorConfig.verify|verify} messages.
                 * @param message ConfigConnectorConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IConfigConnectorConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified ConfigConnectorConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.ConfigConnectorConfig.verify|verify} messages.
                 * @param message ConfigConnectorConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IConfigConnectorConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a ConfigConnectorConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ConfigConnectorConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.ConfigConnectorConfig;

                /**
                 * Decodes a ConfigConnectorConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ConfigConnectorConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.ConfigConnectorConfig;

                /**
                 * Verifies a ConfigConnectorConfig message.
                 * @param message Plain 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 ConfigConnectorConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ConfigConnectorConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.ConfigConnectorConfig;

                /**
                 * Creates a plain object from a ConfigConnectorConfig message. Also converts values to other types if specified.
                 * @param message ConfigConnectorConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.ConfigConnectorConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ConfigConnectorConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for ConfigConnectorConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a GcePersistentDiskCsiDriverConfig. */
            interface IGcePersistentDiskCsiDriverConfig {

                /** GcePersistentDiskCsiDriverConfig enabled */
                enabled?: (boolean|null);
            }

            /** Represents a GcePersistentDiskCsiDriverConfig. */
            class GcePersistentDiskCsiDriverConfig implements IGcePersistentDiskCsiDriverConfig {

                /**
                 * Constructs a new GcePersistentDiskCsiDriverConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IGcePersistentDiskCsiDriverConfig);

                /** GcePersistentDiskCsiDriverConfig enabled. */
                public enabled: boolean;

                /**
                 * Creates a new GcePersistentDiskCsiDriverConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns GcePersistentDiskCsiDriverConfig instance
                 */
                public static create(properties?: google.container.v1beta1.IGcePersistentDiskCsiDriverConfig): google.container.v1beta1.GcePersistentDiskCsiDriverConfig;

                /**
                 * Encodes the specified GcePersistentDiskCsiDriverConfig message. Does not implicitly {@link google.container.v1beta1.GcePersistentDiskCsiDriverConfig.verify|verify} messages.
                 * @param message GcePersistentDiskCsiDriverConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IGcePersistentDiskCsiDriverConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified GcePersistentDiskCsiDriverConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.GcePersistentDiskCsiDriverConfig.verify|verify} messages.
                 * @param message GcePersistentDiskCsiDriverConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IGcePersistentDiskCsiDriverConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a GcePersistentDiskCsiDriverConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns GcePersistentDiskCsiDriverConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.GcePersistentDiskCsiDriverConfig;

                /**
                 * Decodes a GcePersistentDiskCsiDriverConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns GcePersistentDiskCsiDriverConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.GcePersistentDiskCsiDriverConfig;

                /**
                 * Verifies a GcePersistentDiskCsiDriverConfig message.
                 * @param message Plain 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 GcePersistentDiskCsiDriverConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns GcePersistentDiskCsiDriverConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.GcePersistentDiskCsiDriverConfig;

                /**
                 * Creates a plain object from a GcePersistentDiskCsiDriverConfig message. Also converts values to other types if specified.
                 * @param message GcePersistentDiskCsiDriverConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.GcePersistentDiskCsiDriverConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this GcePersistentDiskCsiDriverConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for GcePersistentDiskCsiDriverConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a GcpFilestoreCsiDriverConfig. */
            interface IGcpFilestoreCsiDriverConfig {

                /** GcpFilestoreCsiDriverConfig enabled */
                enabled?: (boolean|null);
            }

            /** Represents a GcpFilestoreCsiDriverConfig. */
            class GcpFilestoreCsiDriverConfig implements IGcpFilestoreCsiDriverConfig {

                /**
                 * Constructs a new GcpFilestoreCsiDriverConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IGcpFilestoreCsiDriverConfig);

                /** GcpFilestoreCsiDriverConfig enabled. */
                public enabled: boolean;

                /**
                 * Creates a new GcpFilestoreCsiDriverConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns GcpFilestoreCsiDriverConfig instance
                 */
                public static create(properties?: google.container.v1beta1.IGcpFilestoreCsiDriverConfig): google.container.v1beta1.GcpFilestoreCsiDriverConfig;

                /**
                 * Encodes the specified GcpFilestoreCsiDriverConfig message. Does not implicitly {@link google.container.v1beta1.GcpFilestoreCsiDriverConfig.verify|verify} messages.
                 * @param message GcpFilestoreCsiDriverConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IGcpFilestoreCsiDriverConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified GcpFilestoreCsiDriverConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.GcpFilestoreCsiDriverConfig.verify|verify} messages.
                 * @param message GcpFilestoreCsiDriverConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IGcpFilestoreCsiDriverConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a GcpFilestoreCsiDriverConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns GcpFilestoreCsiDriverConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.GcpFilestoreCsiDriverConfig;

                /**
                 * Decodes a GcpFilestoreCsiDriverConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns GcpFilestoreCsiDriverConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.GcpFilestoreCsiDriverConfig;

                /**
                 * Verifies a GcpFilestoreCsiDriverConfig message.
                 * @param message Plain 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 GcpFilestoreCsiDriverConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns GcpFilestoreCsiDriverConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.GcpFilestoreCsiDriverConfig;

                /**
                 * Creates a plain object from a GcpFilestoreCsiDriverConfig message. Also converts values to other types if specified.
                 * @param message GcpFilestoreCsiDriverConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.GcpFilestoreCsiDriverConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this GcpFilestoreCsiDriverConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for GcpFilestoreCsiDriverConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a GcsFuseCsiDriverConfig. */
            interface IGcsFuseCsiDriverConfig {

                /** GcsFuseCsiDriverConfig enabled */
                enabled?: (boolean|null);
            }

            /** Represents a GcsFuseCsiDriverConfig. */
            class GcsFuseCsiDriverConfig implements IGcsFuseCsiDriverConfig {

                /**
                 * Constructs a new GcsFuseCsiDriverConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IGcsFuseCsiDriverConfig);

                /** GcsFuseCsiDriverConfig enabled. */
                public enabled: boolean;

                /**
                 * Creates a new GcsFuseCsiDriverConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns GcsFuseCsiDriverConfig instance
                 */
                public static create(properties?: google.container.v1beta1.IGcsFuseCsiDriverConfig): google.container.v1beta1.GcsFuseCsiDriverConfig;

                /**
                 * Encodes the specified GcsFuseCsiDriverConfig message. Does not implicitly {@link google.container.v1beta1.GcsFuseCsiDriverConfig.verify|verify} messages.
                 * @param message GcsFuseCsiDriverConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IGcsFuseCsiDriverConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified GcsFuseCsiDriverConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.GcsFuseCsiDriverConfig.verify|verify} messages.
                 * @param message GcsFuseCsiDriverConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IGcsFuseCsiDriverConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a GcsFuseCsiDriverConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns GcsFuseCsiDriverConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.GcsFuseCsiDriverConfig;

                /**
                 * Decodes a GcsFuseCsiDriverConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns GcsFuseCsiDriverConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.GcsFuseCsiDriverConfig;

                /**
                 * Verifies a GcsFuseCsiDriverConfig message.
                 * @param message Plain 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 GcsFuseCsiDriverConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns GcsFuseCsiDriverConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.GcsFuseCsiDriverConfig;

                /**
                 * Creates a plain object from a GcsFuseCsiDriverConfig message. Also converts values to other types if specified.
                 * @param message GcsFuseCsiDriverConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.GcsFuseCsiDriverConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this GcsFuseCsiDriverConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for GcsFuseCsiDriverConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a ParallelstoreCsiDriverConfig. */
            interface IParallelstoreCsiDriverConfig {

                /** ParallelstoreCsiDriverConfig enabled */
                enabled?: (boolean|null);
            }

            /** Represents a ParallelstoreCsiDriverConfig. */
            class ParallelstoreCsiDriverConfig implements IParallelstoreCsiDriverConfig {

                /**
                 * Constructs a new ParallelstoreCsiDriverConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IParallelstoreCsiDriverConfig);

                /** ParallelstoreCsiDriverConfig enabled. */
                public enabled: boolean;

                /**
                 * Creates a new ParallelstoreCsiDriverConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ParallelstoreCsiDriverConfig instance
                 */
                public static create(properties?: google.container.v1beta1.IParallelstoreCsiDriverConfig): google.container.v1beta1.ParallelstoreCsiDriverConfig;

                /**
                 * Encodes the specified ParallelstoreCsiDriverConfig message. Does not implicitly {@link google.container.v1beta1.ParallelstoreCsiDriverConfig.verify|verify} messages.
                 * @param message ParallelstoreCsiDriverConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IParallelstoreCsiDriverConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified ParallelstoreCsiDriverConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.ParallelstoreCsiDriverConfig.verify|verify} messages.
                 * @param message ParallelstoreCsiDriverConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IParallelstoreCsiDriverConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a ParallelstoreCsiDriverConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ParallelstoreCsiDriverConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.ParallelstoreCsiDriverConfig;

                /**
                 * Decodes a ParallelstoreCsiDriverConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ParallelstoreCsiDriverConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.ParallelstoreCsiDriverConfig;

                /**
                 * Verifies a ParallelstoreCsiDriverConfig message.
                 * @param message Plain 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 ParallelstoreCsiDriverConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ParallelstoreCsiDriverConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.ParallelstoreCsiDriverConfig;

                /**
                 * Creates a plain object from a ParallelstoreCsiDriverConfig message. Also converts values to other types if specified.
                 * @param message ParallelstoreCsiDriverConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.ParallelstoreCsiDriverConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ParallelstoreCsiDriverConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for ParallelstoreCsiDriverConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a HighScaleCheckpointingConfig. */
            interface IHighScaleCheckpointingConfig {

                /** HighScaleCheckpointingConfig enabled */
                enabled?: (boolean|null);
            }

            /** Represents a HighScaleCheckpointingConfig. */
            class HighScaleCheckpointingConfig implements IHighScaleCheckpointingConfig {

                /**
                 * Constructs a new HighScaleCheckpointingConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IHighScaleCheckpointingConfig);

                /** HighScaleCheckpointingConfig enabled. */
                public enabled: boolean;

                /**
                 * Creates a new HighScaleCheckpointingConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns HighScaleCheckpointingConfig instance
                 */
                public static create(properties?: google.container.v1beta1.IHighScaleCheckpointingConfig): google.container.v1beta1.HighScaleCheckpointingConfig;

                /**
                 * Encodes the specified HighScaleCheckpointingConfig message. Does not implicitly {@link google.container.v1beta1.HighScaleCheckpointingConfig.verify|verify} messages.
                 * @param message HighScaleCheckpointingConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IHighScaleCheckpointingConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified HighScaleCheckpointingConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.HighScaleCheckpointingConfig.verify|verify} messages.
                 * @param message HighScaleCheckpointingConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IHighScaleCheckpointingConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a HighScaleCheckpointingConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns HighScaleCheckpointingConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.HighScaleCheckpointingConfig;

                /**
                 * Decodes a HighScaleCheckpointingConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns HighScaleCheckpointingConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.HighScaleCheckpointingConfig;

                /**
                 * Verifies a HighScaleCheckpointingConfig message.
                 * @param message Plain 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 HighScaleCheckpointingConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns HighScaleCheckpointingConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.HighScaleCheckpointingConfig;

                /**
                 * Creates a plain object from a HighScaleCheckpointingConfig message. Also converts values to other types if specified.
                 * @param message HighScaleCheckpointingConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.HighScaleCheckpointingConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this HighScaleCheckpointingConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for HighScaleCheckpointingConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a LustreCsiDriverConfig. */
            interface ILustreCsiDriverConfig {

                /** LustreCsiDriverConfig enabled */
                enabled?: (boolean|null);

                /** LustreCsiDriverConfig enableLegacyLustrePort */
                enableLegacyLustrePort?: (boolean|null);

                /** LustreCsiDriverConfig disableMultiNic */
                disableMultiNic?: (boolean|null);
            }

            /** Represents a LustreCsiDriverConfig. */
            class LustreCsiDriverConfig implements ILustreCsiDriverConfig {

                /**
                 * Constructs a new LustreCsiDriverConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.ILustreCsiDriverConfig);

                /** LustreCsiDriverConfig enabled. */
                public enabled: boolean;

                /** LustreCsiDriverConfig enableLegacyLustrePort. */
                public enableLegacyLustrePort: boolean;

                /** LustreCsiDriverConfig disableMultiNic. */
                public disableMultiNic: boolean;

                /**
                 * Creates a new LustreCsiDriverConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns LustreCsiDriverConfig instance
                 */
                public static create(properties?: google.container.v1beta1.ILustreCsiDriverConfig): google.container.v1beta1.LustreCsiDriverConfig;

                /**
                 * Encodes the specified LustreCsiDriverConfig message. Does not implicitly {@link google.container.v1beta1.LustreCsiDriverConfig.verify|verify} messages.
                 * @param message LustreCsiDriverConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.ILustreCsiDriverConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified LustreCsiDriverConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.LustreCsiDriverConfig.verify|verify} messages.
                 * @param message LustreCsiDriverConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.ILustreCsiDriverConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a LustreCsiDriverConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns LustreCsiDriverConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.LustreCsiDriverConfig;

                /**
                 * Decodes a LustreCsiDriverConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns LustreCsiDriverConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.LustreCsiDriverConfig;

                /**
                 * Verifies a LustreCsiDriverConfig message.
                 * @param message Plain 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 LustreCsiDriverConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns LustreCsiDriverConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.LustreCsiDriverConfig;

                /**
                 * Creates a plain object from a LustreCsiDriverConfig message. Also converts values to other types if specified.
                 * @param message LustreCsiDriverConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.LustreCsiDriverConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this LustreCsiDriverConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for LustreCsiDriverConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a SlurmOperatorConfig. */
            interface ISlurmOperatorConfig {

                /** SlurmOperatorConfig enabled */
                enabled?: (boolean|null);
            }

            /** Represents a SlurmOperatorConfig. */
            class SlurmOperatorConfig implements ISlurmOperatorConfig {

                /**
                 * Constructs a new SlurmOperatorConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.ISlurmOperatorConfig);

                /** SlurmOperatorConfig enabled. */
                public enabled: boolean;

                /**
                 * Creates a new SlurmOperatorConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns SlurmOperatorConfig instance
                 */
                public static create(properties?: google.container.v1beta1.ISlurmOperatorConfig): google.container.v1beta1.SlurmOperatorConfig;

                /**
                 * Encodes the specified SlurmOperatorConfig message. Does not implicitly {@link google.container.v1beta1.SlurmOperatorConfig.verify|verify} messages.
                 * @param message SlurmOperatorConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.ISlurmOperatorConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified SlurmOperatorConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.SlurmOperatorConfig.verify|verify} messages.
                 * @param message SlurmOperatorConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.ISlurmOperatorConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a SlurmOperatorConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns SlurmOperatorConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.SlurmOperatorConfig;

                /**
                 * Decodes a SlurmOperatorConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns SlurmOperatorConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.SlurmOperatorConfig;

                /**
                 * Verifies a SlurmOperatorConfig message.
                 * @param message Plain 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 SlurmOperatorConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns SlurmOperatorConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.SlurmOperatorConfig;

                /**
                 * Creates a plain object from a SlurmOperatorConfig message. Also converts values to other types if specified.
                 * @param message SlurmOperatorConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.SlurmOperatorConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this SlurmOperatorConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for SlurmOperatorConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of an AgentSandboxConfig. */
            interface IAgentSandboxConfig {

                /** AgentSandboxConfig enabled */
                enabled?: (boolean|null);
            }

            /** Represents an AgentSandboxConfig. */
            class AgentSandboxConfig implements IAgentSandboxConfig {

                /**
                 * Constructs a new AgentSandboxConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IAgentSandboxConfig);

                /** AgentSandboxConfig enabled. */
                public enabled: boolean;

                /**
                 * Creates a new AgentSandboxConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns AgentSandboxConfig instance
                 */
                public static create(properties?: google.container.v1beta1.IAgentSandboxConfig): google.container.v1beta1.AgentSandboxConfig;

                /**
                 * Encodes the specified AgentSandboxConfig message. Does not implicitly {@link google.container.v1beta1.AgentSandboxConfig.verify|verify} messages.
                 * @param message AgentSandboxConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IAgentSandboxConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified AgentSandboxConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.AgentSandboxConfig.verify|verify} messages.
                 * @param message AgentSandboxConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IAgentSandboxConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes an AgentSandboxConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns AgentSandboxConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.AgentSandboxConfig;

                /**
                 * Decodes an AgentSandboxConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns AgentSandboxConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.AgentSandboxConfig;

                /**
                 * Verifies an AgentSandboxConfig message.
                 * @param message Plain 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 AgentSandboxConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns AgentSandboxConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.AgentSandboxConfig;

                /**
                 * Creates a plain object from an AgentSandboxConfig message. Also converts values to other types if specified.
                 * @param message AgentSandboxConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.AgentSandboxConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this AgentSandboxConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for AgentSandboxConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a NodeReadinessConfig. */
            interface INodeReadinessConfig {

                /** NodeReadinessConfig enabled */
                enabled?: (boolean|null);
            }

            /** Represents a NodeReadinessConfig. */
            class NodeReadinessConfig implements INodeReadinessConfig {

                /**
                 * Constructs a new NodeReadinessConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.INodeReadinessConfig);

                /** NodeReadinessConfig enabled. */
                public enabled: boolean;

                /**
                 * Creates a new NodeReadinessConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns NodeReadinessConfig instance
                 */
                public static create(properties?: google.container.v1beta1.INodeReadinessConfig): google.container.v1beta1.NodeReadinessConfig;

                /**
                 * Encodes the specified NodeReadinessConfig message. Does not implicitly {@link google.container.v1beta1.NodeReadinessConfig.verify|verify} messages.
                 * @param message NodeReadinessConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.INodeReadinessConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified NodeReadinessConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.NodeReadinessConfig.verify|verify} messages.
                 * @param message NodeReadinessConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.INodeReadinessConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a NodeReadinessConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns NodeReadinessConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.NodeReadinessConfig;

                /**
                 * Decodes a NodeReadinessConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns NodeReadinessConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.NodeReadinessConfig;

                /**
                 * Verifies a NodeReadinessConfig message.
                 * @param message Plain 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 NodeReadinessConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns NodeReadinessConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.NodeReadinessConfig;

                /**
                 * Creates a plain object from a NodeReadinessConfig message. Also converts values to other types if specified.
                 * @param message NodeReadinessConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.NodeReadinessConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this NodeReadinessConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for NodeReadinessConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a SliceControllerConfig. */
            interface ISliceControllerConfig {

                /** SliceControllerConfig enabled */
                enabled?: (boolean|null);
            }

            /** Represents a SliceControllerConfig. */
            class SliceControllerConfig implements ISliceControllerConfig {

                /**
                 * Constructs a new SliceControllerConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.ISliceControllerConfig);

                /** SliceControllerConfig enabled. */
                public enabled: boolean;

                /**
                 * Creates a new SliceControllerConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns SliceControllerConfig instance
                 */
                public static create(properties?: google.container.v1beta1.ISliceControllerConfig): google.container.v1beta1.SliceControllerConfig;

                /**
                 * Encodes the specified SliceControllerConfig message. Does not implicitly {@link google.container.v1beta1.SliceControllerConfig.verify|verify} messages.
                 * @param message SliceControllerConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.ISliceControllerConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified SliceControllerConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.SliceControllerConfig.verify|verify} messages.
                 * @param message SliceControllerConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.ISliceControllerConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a SliceControllerConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns SliceControllerConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.SliceControllerConfig;

                /**
                 * Decodes a SliceControllerConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns SliceControllerConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.SliceControllerConfig;

                /**
                 * Verifies a SliceControllerConfig message.
                 * @param message Plain 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 SliceControllerConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns SliceControllerConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.SliceControllerConfig;

                /**
                 * Creates a plain object from a SliceControllerConfig message. Also converts values to other types if specified.
                 * @param message SliceControllerConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.SliceControllerConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this SliceControllerConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for SliceControllerConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a RayOperatorConfig. */
            interface IRayOperatorConfig {

                /** RayOperatorConfig enabled */
                enabled?: (boolean|null);

                /** RayOperatorConfig rayClusterLoggingConfig */
                rayClusterLoggingConfig?: (google.container.v1beta1.IRayClusterLoggingConfig|null);

                /** RayOperatorConfig rayClusterMonitoringConfig */
                rayClusterMonitoringConfig?: (google.container.v1beta1.IRayClusterMonitoringConfig|null);
            }

            /** Represents a RayOperatorConfig. */
            class RayOperatorConfig implements IRayOperatorConfig {

                /**
                 * Constructs a new RayOperatorConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IRayOperatorConfig);

                /** RayOperatorConfig enabled. */
                public enabled: boolean;

                /** RayOperatorConfig rayClusterLoggingConfig. */
                public rayClusterLoggingConfig?: (google.container.v1beta1.IRayClusterLoggingConfig|null);

                /** RayOperatorConfig rayClusterMonitoringConfig. */
                public rayClusterMonitoringConfig?: (google.container.v1beta1.IRayClusterMonitoringConfig|null);

                /**
                 * Creates a new RayOperatorConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns RayOperatorConfig instance
                 */
                public static create(properties?: google.container.v1beta1.IRayOperatorConfig): google.container.v1beta1.RayOperatorConfig;

                /**
                 * Encodes the specified RayOperatorConfig message. Does not implicitly {@link google.container.v1beta1.RayOperatorConfig.verify|verify} messages.
                 * @param message RayOperatorConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IRayOperatorConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified RayOperatorConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.RayOperatorConfig.verify|verify} messages.
                 * @param message RayOperatorConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IRayOperatorConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a RayOperatorConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns RayOperatorConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.RayOperatorConfig;

                /**
                 * Decodes a RayOperatorConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns RayOperatorConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.RayOperatorConfig;

                /**
                 * Verifies a RayOperatorConfig message.
                 * @param message Plain 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 RayOperatorConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns RayOperatorConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.RayOperatorConfig;

                /**
                 * Creates a plain object from a RayOperatorConfig message. Also converts values to other types if specified.
                 * @param message RayOperatorConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.RayOperatorConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this RayOperatorConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for RayOperatorConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a PrivateClusterMasterGlobalAccessConfig. */
            interface IPrivateClusterMasterGlobalAccessConfig {

                /** PrivateClusterMasterGlobalAccessConfig enabled */
                enabled?: (boolean|null);
            }

            /** Represents a PrivateClusterMasterGlobalAccessConfig. */
            class PrivateClusterMasterGlobalAccessConfig implements IPrivateClusterMasterGlobalAccessConfig {

                /**
                 * Constructs a new PrivateClusterMasterGlobalAccessConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IPrivateClusterMasterGlobalAccessConfig);

                /** PrivateClusterMasterGlobalAccessConfig enabled. */
                public enabled: boolean;

                /**
                 * Creates a new PrivateClusterMasterGlobalAccessConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns PrivateClusterMasterGlobalAccessConfig instance
                 */
                public static create(properties?: google.container.v1beta1.IPrivateClusterMasterGlobalAccessConfig): google.container.v1beta1.PrivateClusterMasterGlobalAccessConfig;

                /**
                 * Encodes the specified PrivateClusterMasterGlobalAccessConfig message. Does not implicitly {@link google.container.v1beta1.PrivateClusterMasterGlobalAccessConfig.verify|verify} messages.
                 * @param message PrivateClusterMasterGlobalAccessConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IPrivateClusterMasterGlobalAccessConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified PrivateClusterMasterGlobalAccessConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.PrivateClusterMasterGlobalAccessConfig.verify|verify} messages.
                 * @param message PrivateClusterMasterGlobalAccessConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IPrivateClusterMasterGlobalAccessConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a PrivateClusterMasterGlobalAccessConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns PrivateClusterMasterGlobalAccessConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.PrivateClusterMasterGlobalAccessConfig;

                /**
                 * Decodes a PrivateClusterMasterGlobalAccessConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns PrivateClusterMasterGlobalAccessConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.PrivateClusterMasterGlobalAccessConfig;

                /**
                 * Verifies a PrivateClusterMasterGlobalAccessConfig message.
                 * @param message Plain 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 PrivateClusterMasterGlobalAccessConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns PrivateClusterMasterGlobalAccessConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.PrivateClusterMasterGlobalAccessConfig;

                /**
                 * Creates a plain object from a PrivateClusterMasterGlobalAccessConfig message. Also converts values to other types if specified.
                 * @param message PrivateClusterMasterGlobalAccessConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.PrivateClusterMasterGlobalAccessConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this PrivateClusterMasterGlobalAccessConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for PrivateClusterMasterGlobalAccessConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a PrivateClusterConfig. */
            interface IPrivateClusterConfig {

                /** PrivateClusterConfig enablePrivateNodes */
                enablePrivateNodes?: (boolean|null);

                /** PrivateClusterConfig enablePrivateEndpoint */
                enablePrivateEndpoint?: (boolean|null);

                /** PrivateClusterConfig masterIpv4CidrBlock */
                masterIpv4CidrBlock?: (string|null);

                /** PrivateClusterConfig privateEndpoint */
                privateEndpoint?: (string|null);

                /** PrivateClusterConfig publicEndpoint */
                publicEndpoint?: (string|null);

                /** PrivateClusterConfig peeringName */
                peeringName?: (string|null);

                /** PrivateClusterConfig masterGlobalAccessConfig */
                masterGlobalAccessConfig?: (google.container.v1beta1.IPrivateClusterMasterGlobalAccessConfig|null);

                /** PrivateClusterConfig privateEndpointSubnetwork */
                privateEndpointSubnetwork?: (string|null);
            }

            /** Represents a PrivateClusterConfig. */
            class PrivateClusterConfig implements IPrivateClusterConfig {

                /**
                 * Constructs a new PrivateClusterConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IPrivateClusterConfig);

                /** PrivateClusterConfig enablePrivateNodes. */
                public enablePrivateNodes: boolean;

                /** PrivateClusterConfig enablePrivateEndpoint. */
                public enablePrivateEndpoint: boolean;

                /** PrivateClusterConfig masterIpv4CidrBlock. */
                public masterIpv4CidrBlock: string;

                /** PrivateClusterConfig privateEndpoint. */
                public privateEndpoint: string;

                /** PrivateClusterConfig publicEndpoint. */
                public publicEndpoint: string;

                /** PrivateClusterConfig peeringName. */
                public peeringName: string;

                /** PrivateClusterConfig masterGlobalAccessConfig. */
                public masterGlobalAccessConfig?: (google.container.v1beta1.IPrivateClusterMasterGlobalAccessConfig|null);

                /** PrivateClusterConfig privateEndpointSubnetwork. */
                public privateEndpointSubnetwork: string;

                /**
                 * Creates a new PrivateClusterConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns PrivateClusterConfig instance
                 */
                public static create(properties?: google.container.v1beta1.IPrivateClusterConfig): google.container.v1beta1.PrivateClusterConfig;

                /**
                 * Encodes the specified PrivateClusterConfig message. Does not implicitly {@link google.container.v1beta1.PrivateClusterConfig.verify|verify} messages.
                 * @param message PrivateClusterConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IPrivateClusterConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified PrivateClusterConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.PrivateClusterConfig.verify|verify} messages.
                 * @param message PrivateClusterConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IPrivateClusterConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a PrivateClusterConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns PrivateClusterConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.PrivateClusterConfig;

                /**
                 * Decodes a PrivateClusterConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns PrivateClusterConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.PrivateClusterConfig;

                /**
                 * Verifies a PrivateClusterConfig message.
                 * @param message Plain 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 PrivateClusterConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns PrivateClusterConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.PrivateClusterConfig;

                /**
                 * Creates a plain object from a PrivateClusterConfig message. Also converts values to other types if specified.
                 * @param message PrivateClusterConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.PrivateClusterConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this PrivateClusterConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for PrivateClusterConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of an IstioConfig. */
            interface IIstioConfig {

                /** IstioConfig disabled */
                disabled?: (boolean|null);

                /** IstioConfig auth */
                auth?: (google.container.v1beta1.IstioConfig.IstioAuthMode|keyof typeof google.container.v1beta1.IstioConfig.IstioAuthMode|null);
            }

            /** Represents an IstioConfig. */
            class IstioConfig implements IIstioConfig {

                /**
                 * Constructs a new IstioConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IIstioConfig);

                /** IstioConfig disabled. */
                public disabled: boolean;

                /** IstioConfig auth. */
                public auth: (google.container.v1beta1.IstioConfig.IstioAuthMode|keyof typeof google.container.v1beta1.IstioConfig.IstioAuthMode);

                /**
                 * Creates a new IstioConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns IstioConfig instance
                 */
                public static create(properties?: google.container.v1beta1.IIstioConfig): google.container.v1beta1.IstioConfig;

                /**
                 * Encodes the specified IstioConfig message. Does not implicitly {@link google.container.v1beta1.IstioConfig.verify|verify} messages.
                 * @param message IstioConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IIstioConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified IstioConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.IstioConfig.verify|verify} messages.
                 * @param message IstioConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IIstioConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes an IstioConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns IstioConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.IstioConfig;

                /**
                 * Decodes an IstioConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns IstioConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.IstioConfig;

                /**
                 * Verifies an IstioConfig message.
                 * @param message Plain 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 IstioConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns IstioConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.IstioConfig;

                /**
                 * Creates a plain object from an IstioConfig message. Also converts values to other types if specified.
                 * @param message IstioConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.IstioConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this IstioConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for IstioConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace IstioConfig {

                /** IstioAuthMode enum. */
                enum IstioAuthMode {
                    AUTH_NONE = 0,
                    AUTH_MUTUAL_TLS = 1
                }
            }

            /** Properties of a CloudRunConfig. */
            interface ICloudRunConfig {

                /** CloudRunConfig disabled */
                disabled?: (boolean|null);

                /** CloudRunConfig loadBalancerType */
                loadBalancerType?: (google.container.v1beta1.CloudRunConfig.LoadBalancerType|keyof typeof google.container.v1beta1.CloudRunConfig.LoadBalancerType|null);
            }

            /** Represents a CloudRunConfig. */
            class CloudRunConfig implements ICloudRunConfig {

                /**
                 * Constructs a new CloudRunConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.ICloudRunConfig);

                /** CloudRunConfig disabled. */
                public disabled: boolean;

                /** CloudRunConfig loadBalancerType. */
                public loadBalancerType: (google.container.v1beta1.CloudRunConfig.LoadBalancerType|keyof typeof google.container.v1beta1.CloudRunConfig.LoadBalancerType);

                /**
                 * Creates a new CloudRunConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns CloudRunConfig instance
                 */
                public static create(properties?: google.container.v1beta1.ICloudRunConfig): google.container.v1beta1.CloudRunConfig;

                /**
                 * Encodes the specified CloudRunConfig message. Does not implicitly {@link google.container.v1beta1.CloudRunConfig.verify|verify} messages.
                 * @param message CloudRunConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.ICloudRunConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified CloudRunConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.CloudRunConfig.verify|verify} messages.
                 * @param message CloudRunConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.ICloudRunConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a CloudRunConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns CloudRunConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.CloudRunConfig;

                /**
                 * Decodes a CloudRunConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns CloudRunConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.CloudRunConfig;

                /**
                 * Verifies a CloudRunConfig message.
                 * @param message Plain 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 CloudRunConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns CloudRunConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.CloudRunConfig;

                /**
                 * Creates a plain object from a CloudRunConfig message. Also converts values to other types if specified.
                 * @param message CloudRunConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.CloudRunConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this CloudRunConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for CloudRunConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace CloudRunConfig {

                /** LoadBalancerType enum. */
                enum LoadBalancerType {
                    LOAD_BALANCER_TYPE_UNSPECIFIED = 0,
                    LOAD_BALANCER_TYPE_EXTERNAL = 1,
                    LOAD_BALANCER_TYPE_INTERNAL = 2
                }
            }

            /** Properties of a MasterAuthorizedNetworksConfig. */
            interface IMasterAuthorizedNetworksConfig {

                /** MasterAuthorizedNetworksConfig enabled */
                enabled?: (boolean|null);

                /** MasterAuthorizedNetworksConfig cidrBlocks */
                cidrBlocks?: (google.container.v1beta1.MasterAuthorizedNetworksConfig.ICidrBlock[]|null);

                /** MasterAuthorizedNetworksConfig gcpPublicCidrsAccessEnabled */
                gcpPublicCidrsAccessEnabled?: (boolean|null);

                /** MasterAuthorizedNetworksConfig privateEndpointEnforcementEnabled */
                privateEndpointEnforcementEnabled?: (boolean|null);
            }

            /** Represents a MasterAuthorizedNetworksConfig. */
            class MasterAuthorizedNetworksConfig implements IMasterAuthorizedNetworksConfig {

                /**
                 * Constructs a new MasterAuthorizedNetworksConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IMasterAuthorizedNetworksConfig);

                /** MasterAuthorizedNetworksConfig enabled. */
                public enabled: boolean;

                /** MasterAuthorizedNetworksConfig cidrBlocks. */
                public cidrBlocks: google.container.v1beta1.MasterAuthorizedNetworksConfig.ICidrBlock[];

                /** MasterAuthorizedNetworksConfig gcpPublicCidrsAccessEnabled. */
                public gcpPublicCidrsAccessEnabled?: (boolean|null);

                /** MasterAuthorizedNetworksConfig privateEndpointEnforcementEnabled. */
                public privateEndpointEnforcementEnabled?: (boolean|null);

                /**
                 * Creates a new MasterAuthorizedNetworksConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns MasterAuthorizedNetworksConfig instance
                 */
                public static create(properties?: google.container.v1beta1.IMasterAuthorizedNetworksConfig): google.container.v1beta1.MasterAuthorizedNetworksConfig;

                /**
                 * Encodes the specified MasterAuthorizedNetworksConfig message. Does not implicitly {@link google.container.v1beta1.MasterAuthorizedNetworksConfig.verify|verify} messages.
                 * @param message MasterAuthorizedNetworksConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IMasterAuthorizedNetworksConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified MasterAuthorizedNetworksConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.MasterAuthorizedNetworksConfig.verify|verify} messages.
                 * @param message MasterAuthorizedNetworksConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IMasterAuthorizedNetworksConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a MasterAuthorizedNetworksConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns MasterAuthorizedNetworksConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.MasterAuthorizedNetworksConfig;

                /**
                 * Decodes a MasterAuthorizedNetworksConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns MasterAuthorizedNetworksConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.MasterAuthorizedNetworksConfig;

                /**
                 * Verifies a MasterAuthorizedNetworksConfig message.
                 * @param message Plain 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 MasterAuthorizedNetworksConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns MasterAuthorizedNetworksConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.MasterAuthorizedNetworksConfig;

                /**
                 * Creates a plain object from a MasterAuthorizedNetworksConfig message. Also converts values to other types if specified.
                 * @param message MasterAuthorizedNetworksConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.MasterAuthorizedNetworksConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this MasterAuthorizedNetworksConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for MasterAuthorizedNetworksConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace MasterAuthorizedNetworksConfig {

                /** Properties of a CidrBlock. */
                interface ICidrBlock {

                    /** CidrBlock displayName */
                    displayName?: (string|null);

                    /** CidrBlock cidrBlock */
                    cidrBlock?: (string|null);
                }

                /** Represents a CidrBlock. */
                class CidrBlock implements ICidrBlock {

                    /**
                     * Constructs a new CidrBlock.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.container.v1beta1.MasterAuthorizedNetworksConfig.ICidrBlock);

                    /** CidrBlock displayName. */
                    public displayName: string;

                    /** CidrBlock cidrBlock. */
                    public cidrBlock: string;

                    /**
                     * Creates a new CidrBlock instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CidrBlock instance
                     */
                    public static create(properties?: google.container.v1beta1.MasterAuthorizedNetworksConfig.ICidrBlock): google.container.v1beta1.MasterAuthorizedNetworksConfig.CidrBlock;

                    /**
                     * Encodes the specified CidrBlock message. Does not implicitly {@link google.container.v1beta1.MasterAuthorizedNetworksConfig.CidrBlock.verify|verify} messages.
                     * @param message CidrBlock message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.container.v1beta1.MasterAuthorizedNetworksConfig.ICidrBlock, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CidrBlock message, length delimited. Does not implicitly {@link google.container.v1beta1.MasterAuthorizedNetworksConfig.CidrBlock.verify|verify} messages.
                     * @param message CidrBlock message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.container.v1beta1.MasterAuthorizedNetworksConfig.ICidrBlock, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CidrBlock message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CidrBlock
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.MasterAuthorizedNetworksConfig.CidrBlock;

                    /**
                     * Decodes a CidrBlock message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CidrBlock
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.MasterAuthorizedNetworksConfig.CidrBlock;

                    /**
                     * Verifies a CidrBlock message.
                     * @param message Plain 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 CidrBlock message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CidrBlock
                     */
                    public static fromObject(object: { [k: string]: any }): google.container.v1beta1.MasterAuthorizedNetworksConfig.CidrBlock;

                    /**
                     * Creates a plain object from a CidrBlock message. Also converts values to other types if specified.
                     * @param message CidrBlock
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.container.v1beta1.MasterAuthorizedNetworksConfig.CidrBlock, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CidrBlock to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CidrBlock
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }
            }

            /** Properties of a LegacyAbac. */
            interface ILegacyAbac {

                /** LegacyAbac enabled */
                enabled?: (boolean|null);
            }

            /** Represents a LegacyAbac. */
            class LegacyAbac implements ILegacyAbac {

                /**
                 * Constructs a new LegacyAbac.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.ILegacyAbac);

                /** LegacyAbac enabled. */
                public enabled: boolean;

                /**
                 * Creates a new LegacyAbac instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns LegacyAbac instance
                 */
                public static create(properties?: google.container.v1beta1.ILegacyAbac): google.container.v1beta1.LegacyAbac;

                /**
                 * Encodes the specified LegacyAbac message. Does not implicitly {@link google.container.v1beta1.LegacyAbac.verify|verify} messages.
                 * @param message LegacyAbac message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.ILegacyAbac, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified LegacyAbac message, length delimited. Does not implicitly {@link google.container.v1beta1.LegacyAbac.verify|verify} messages.
                 * @param message LegacyAbac message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.ILegacyAbac, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a LegacyAbac message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns LegacyAbac
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.LegacyAbac;

                /**
                 * Decodes a LegacyAbac message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns LegacyAbac
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.LegacyAbac;

                /**
                 * Verifies a LegacyAbac message.
                 * @param message Plain 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 LegacyAbac message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns LegacyAbac
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.LegacyAbac;

                /**
                 * Creates a plain object from a LegacyAbac message. Also converts values to other types if specified.
                 * @param message LegacyAbac
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.LegacyAbac, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this LegacyAbac to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for LegacyAbac
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a NetworkPolicy. */
            interface INetworkPolicy {

                /** NetworkPolicy provider */
                provider?: (google.container.v1beta1.NetworkPolicy.Provider|keyof typeof google.container.v1beta1.NetworkPolicy.Provider|null);

                /** NetworkPolicy enabled */
                enabled?: (boolean|null);
            }

            /** Represents a NetworkPolicy. */
            class NetworkPolicy implements INetworkPolicy {

                /**
                 * Constructs a new NetworkPolicy.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.INetworkPolicy);

                /** NetworkPolicy provider. */
                public provider: (google.container.v1beta1.NetworkPolicy.Provider|keyof typeof google.container.v1beta1.NetworkPolicy.Provider);

                /** NetworkPolicy enabled. */
                public enabled: boolean;

                /**
                 * Creates a new NetworkPolicy instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns NetworkPolicy instance
                 */
                public static create(properties?: google.container.v1beta1.INetworkPolicy): google.container.v1beta1.NetworkPolicy;

                /**
                 * Encodes the specified NetworkPolicy message. Does not implicitly {@link google.container.v1beta1.NetworkPolicy.verify|verify} messages.
                 * @param message NetworkPolicy message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.INetworkPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified NetworkPolicy message, length delimited. Does not implicitly {@link google.container.v1beta1.NetworkPolicy.verify|verify} messages.
                 * @param message NetworkPolicy message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.INetworkPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a NetworkPolicy message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns NetworkPolicy
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.NetworkPolicy;

                /**
                 * Decodes a NetworkPolicy message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns NetworkPolicy
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.NetworkPolicy;

                /**
                 * Verifies a NetworkPolicy message.
                 * @param message Plain 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 NetworkPolicy message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns NetworkPolicy
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.NetworkPolicy;

                /**
                 * Creates a plain object from a NetworkPolicy message. Also converts values to other types if specified.
                 * @param message NetworkPolicy
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.NetworkPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this NetworkPolicy to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for NetworkPolicy
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace NetworkPolicy {

                /** Provider enum. */
                enum Provider {
                    PROVIDER_UNSPECIFIED = 0,
                    CALICO = 1
                }
            }

            /** Properties of a PodCIDROverprovisionConfig. */
            interface IPodCIDROverprovisionConfig {

                /** PodCIDROverprovisionConfig disable */
                disable?: (boolean|null);
            }

            /** Represents a PodCIDROverprovisionConfig. */
            class PodCIDROverprovisionConfig implements IPodCIDROverprovisionConfig {

                /**
                 * Constructs a new PodCIDROverprovisionConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IPodCIDROverprovisionConfig);

                /** PodCIDROverprovisionConfig disable. */
                public disable: boolean;

                /**
                 * Creates a new PodCIDROverprovisionConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns PodCIDROverprovisionConfig instance
                 */
                public static create(properties?: google.container.v1beta1.IPodCIDROverprovisionConfig): google.container.v1beta1.PodCIDROverprovisionConfig;

                /**
                 * Encodes the specified PodCIDROverprovisionConfig message. Does not implicitly {@link google.container.v1beta1.PodCIDROverprovisionConfig.verify|verify} messages.
                 * @param message PodCIDROverprovisionConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IPodCIDROverprovisionConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified PodCIDROverprovisionConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.PodCIDROverprovisionConfig.verify|verify} messages.
                 * @param message PodCIDROverprovisionConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IPodCIDROverprovisionConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a PodCIDROverprovisionConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns PodCIDROverprovisionConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.PodCIDROverprovisionConfig;

                /**
                 * Decodes a PodCIDROverprovisionConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns PodCIDROverprovisionConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.PodCIDROverprovisionConfig;

                /**
                 * Verifies a PodCIDROverprovisionConfig message.
                 * @param message Plain 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 PodCIDROverprovisionConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns PodCIDROverprovisionConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.PodCIDROverprovisionConfig;

                /**
                 * Creates a plain object from a PodCIDROverprovisionConfig message. Also converts values to other types if specified.
                 * @param message PodCIDROverprovisionConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.PodCIDROverprovisionConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this PodCIDROverprovisionConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for PodCIDROverprovisionConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a IPAllocationPolicy. */
            interface IIPAllocationPolicy {

                /** IPAllocationPolicy useIpAliases */
                useIpAliases?: (boolean|null);

                /** IPAllocationPolicy createSubnetwork */
                createSubnetwork?: (boolean|null);

                /** IPAllocationPolicy subnetworkName */
                subnetworkName?: (string|null);

                /** IPAllocationPolicy clusterIpv4Cidr */
                clusterIpv4Cidr?: (string|null);

                /** IPAllocationPolicy nodeIpv4Cidr */
                nodeIpv4Cidr?: (string|null);

                /** IPAllocationPolicy servicesIpv4Cidr */
                servicesIpv4Cidr?: (string|null);

                /** IPAllocationPolicy clusterSecondaryRangeName */
                clusterSecondaryRangeName?: (string|null);

                /** IPAllocationPolicy servicesSecondaryRangeName */
                servicesSecondaryRangeName?: (string|null);

                /** IPAllocationPolicy clusterIpv4CidrBlock */
                clusterIpv4CidrBlock?: (string|null);

                /** IPAllocationPolicy nodeIpv4CidrBlock */
                nodeIpv4CidrBlock?: (string|null);

                /** IPAllocationPolicy servicesIpv4CidrBlock */
                servicesIpv4CidrBlock?: (string|null);

                /** IPAllocationPolicy allowRouteOverlap */
                allowRouteOverlap?: (boolean|null);

                /** IPAllocationPolicy tpuIpv4CidrBlock */
                tpuIpv4CidrBlock?: (string|null);

                /** IPAllocationPolicy useRoutes */
                useRoutes?: (boolean|null);

                /** IPAllocationPolicy stackType */
                stackType?: (google.container.v1beta1.IPAllocationPolicy.StackType|keyof typeof google.container.v1beta1.IPAllocationPolicy.StackType|null);

                /** IPAllocationPolicy ipv6AccessType */
                ipv6AccessType?: (google.container.v1beta1.IPAllocationPolicy.IPv6AccessType|keyof typeof google.container.v1beta1.IPAllocationPolicy.IPv6AccessType|null);

                /** IPAllocationPolicy podCidrOverprovisionConfig */
                podCidrOverprovisionConfig?: (google.container.v1beta1.IPodCIDROverprovisionConfig|null);

                /** IPAllocationPolicy subnetIpv6CidrBlock */
                subnetIpv6CidrBlock?: (string|null);

                /** IPAllocationPolicy servicesIpv6CidrBlock */
                servicesIpv6CidrBlock?: (string|null);

                /** IPAllocationPolicy additionalPodRangesConfig */
                additionalPodRangesConfig?: (google.container.v1beta1.IAdditionalPodRangesConfig|null);

                /** IPAllocationPolicy defaultPodIpv4RangeUtilization */
                defaultPodIpv4RangeUtilization?: (number|null);

                /** IPAllocationPolicy additionalIpRangesConfigs */
                additionalIpRangesConfigs?: (google.container.v1beta1.IAdditionalIPRangesConfig[]|null);

                /** IPAllocationPolicy autoIpamConfig */
                autoIpamConfig?: (google.container.v1beta1.IAutoIpamConfig|null);

                /** IPAllocationPolicy networkTierConfig */
                networkTierConfig?: (google.container.v1beta1.INetworkTierConfig|null);
            }

            /** Represents a IPAllocationPolicy. */
            class IPAllocationPolicy implements IIPAllocationPolicy {

                /**
                 * Constructs a new IPAllocationPolicy.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IIPAllocationPolicy);

                /** IPAllocationPolicy useIpAliases. */
                public useIpAliases: boolean;

                /** IPAllocationPolicy createSubnetwork. */
                public createSubnetwork: boolean;

                /** IPAllocationPolicy subnetworkName. */
                public subnetworkName: string;

                /** IPAllocationPolicy clusterIpv4Cidr. */
                public clusterIpv4Cidr: string;

                /** IPAllocationPolicy nodeIpv4Cidr. */
                public nodeIpv4Cidr: string;

                /** IPAllocationPolicy servicesIpv4Cidr. */
                public servicesIpv4Cidr: string;

                /** IPAllocationPolicy clusterSecondaryRangeName. */
                public clusterSecondaryRangeName: string;

                /** IPAllocationPolicy servicesSecondaryRangeName. */
                public servicesSecondaryRangeName: string;

                /** IPAllocationPolicy clusterIpv4CidrBlock. */
                public clusterIpv4CidrBlock: string;

                /** IPAllocationPolicy nodeIpv4CidrBlock. */
                public nodeIpv4CidrBlock: string;

                /** IPAllocationPolicy servicesIpv4CidrBlock. */
                public servicesIpv4CidrBlock: string;

                /** IPAllocationPolicy allowRouteOverlap. */
                public allowRouteOverlap: boolean;

                /** IPAllocationPolicy tpuIpv4CidrBlock. */
                public tpuIpv4CidrBlock: string;

                /** IPAllocationPolicy useRoutes. */
                public useRoutes: boolean;

                /** IPAllocationPolicy stackType. */
                public stackType: (google.container.v1beta1.IPAllocationPolicy.StackType|keyof typeof google.container.v1beta1.IPAllocationPolicy.StackType);

                /** IPAllocationPolicy ipv6AccessType. */
                public ipv6AccessType: (google.container.v1beta1.IPAllocationPolicy.IPv6AccessType|keyof typeof google.container.v1beta1.IPAllocationPolicy.IPv6AccessType);

                /** IPAllocationPolicy podCidrOverprovisionConfig. */
                public podCidrOverprovisionConfig?: (google.container.v1beta1.IPodCIDROverprovisionConfig|null);

                /** IPAllocationPolicy subnetIpv6CidrBlock. */
                public subnetIpv6CidrBlock: string;

                /** IPAllocationPolicy servicesIpv6CidrBlock. */
                public servicesIpv6CidrBlock: string;

                /** IPAllocationPolicy additionalPodRangesConfig. */
                public additionalPodRangesConfig?: (google.container.v1beta1.IAdditionalPodRangesConfig|null);

                /** IPAllocationPolicy defaultPodIpv4RangeUtilization. */
                public defaultPodIpv4RangeUtilization: number;

                /** IPAllocationPolicy additionalIpRangesConfigs. */
                public additionalIpRangesConfigs: google.container.v1beta1.IAdditionalIPRangesConfig[];

                /** IPAllocationPolicy autoIpamConfig. */
                public autoIpamConfig?: (google.container.v1beta1.IAutoIpamConfig|null);

                /** IPAllocationPolicy networkTierConfig. */
                public networkTierConfig?: (google.container.v1beta1.INetworkTierConfig|null);

                /**
                 * Creates a new IPAllocationPolicy instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns IPAllocationPolicy instance
                 */
                public static create(properties?: google.container.v1beta1.IIPAllocationPolicy): google.container.v1beta1.IPAllocationPolicy;

                /**
                 * Encodes the specified IPAllocationPolicy message. Does not implicitly {@link google.container.v1beta1.IPAllocationPolicy.verify|verify} messages.
                 * @param message IPAllocationPolicy message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IIPAllocationPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified IPAllocationPolicy message, length delimited. Does not implicitly {@link google.container.v1beta1.IPAllocationPolicy.verify|verify} messages.
                 * @param message IPAllocationPolicy message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IIPAllocationPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a IPAllocationPolicy message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns IPAllocationPolicy
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.IPAllocationPolicy;

                /**
                 * Decodes a IPAllocationPolicy message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns IPAllocationPolicy
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.IPAllocationPolicy;

                /**
                 * Verifies a IPAllocationPolicy message.
                 * @param message Plain 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 IPAllocationPolicy message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns IPAllocationPolicy
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.IPAllocationPolicy;

                /**
                 * Creates a plain object from a IPAllocationPolicy message. Also converts values to other types if specified.
                 * @param message IPAllocationPolicy
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.IPAllocationPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this IPAllocationPolicy to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for IPAllocationPolicy
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace IPAllocationPolicy {

                /** StackType enum. */
                enum StackType {
                    STACK_TYPE_UNSPECIFIED = 0,
                    IPV4 = 1,
                    IPV4_IPV6 = 2
                }

                /** IPv6AccessType enum. */
                enum IPv6AccessType {
                    IPV6_ACCESS_TYPE_UNSPECIFIED = 0,
                    INTERNAL = 1,
                    EXTERNAL = 2
                }
            }

            /** Properties of a BinaryAuthorization. */
            interface IBinaryAuthorization {

                /** BinaryAuthorization enabled */
                enabled?: (boolean|null);

                /** BinaryAuthorization evaluationMode */
                evaluationMode?: (google.container.v1beta1.BinaryAuthorization.EvaluationMode|keyof typeof google.container.v1beta1.BinaryAuthorization.EvaluationMode|null);

                /** BinaryAuthorization policyBindings */
                policyBindings?: (google.container.v1beta1.BinaryAuthorization.IPolicyBinding[]|null);
            }

            /** Represents a BinaryAuthorization. */
            class BinaryAuthorization implements IBinaryAuthorization {

                /**
                 * Constructs a new BinaryAuthorization.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IBinaryAuthorization);

                /** BinaryAuthorization enabled. */
                public enabled: boolean;

                /** BinaryAuthorization evaluationMode. */
                public evaluationMode: (google.container.v1beta1.BinaryAuthorization.EvaluationMode|keyof typeof google.container.v1beta1.BinaryAuthorization.EvaluationMode);

                /** BinaryAuthorization policyBindings. */
                public policyBindings: google.container.v1beta1.BinaryAuthorization.IPolicyBinding[];

                /**
                 * Creates a new BinaryAuthorization instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns BinaryAuthorization instance
                 */
                public static create(properties?: google.container.v1beta1.IBinaryAuthorization): google.container.v1beta1.BinaryAuthorization;

                /**
                 * Encodes the specified BinaryAuthorization message. Does not implicitly {@link google.container.v1beta1.BinaryAuthorization.verify|verify} messages.
                 * @param message BinaryAuthorization message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IBinaryAuthorization, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified BinaryAuthorization message, length delimited. Does not implicitly {@link google.container.v1beta1.BinaryAuthorization.verify|verify} messages.
                 * @param message BinaryAuthorization message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IBinaryAuthorization, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a BinaryAuthorization message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns BinaryAuthorization
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.BinaryAuthorization;

                /**
                 * Decodes a BinaryAuthorization message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns BinaryAuthorization
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.BinaryAuthorization;

                /**
                 * Verifies a BinaryAuthorization message.
                 * @param message Plain 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 BinaryAuthorization message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns BinaryAuthorization
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.BinaryAuthorization;

                /**
                 * Creates a plain object from a BinaryAuthorization message. Also converts values to other types if specified.
                 * @param message BinaryAuthorization
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.BinaryAuthorization, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this BinaryAuthorization to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for BinaryAuthorization
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace BinaryAuthorization {

                /** EvaluationMode enum. */
                enum EvaluationMode {
                    EVALUATION_MODE_UNSPECIFIED = 0,
                    DISABLED = 1,
                    PROJECT_SINGLETON_POLICY_ENFORCE = 2,
                    POLICY_BINDINGS = 5,
                    POLICY_BINDINGS_AND_PROJECT_SINGLETON_POLICY_ENFORCE = 6
                }

                /** Properties of a PolicyBinding. */
                interface IPolicyBinding {

                    /** PolicyBinding name */
                    name?: (string|null);
                }

                /** Represents a PolicyBinding. */
                class PolicyBinding implements IPolicyBinding {

                    /**
                     * Constructs a new PolicyBinding.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.container.v1beta1.BinaryAuthorization.IPolicyBinding);

                    /** PolicyBinding name. */
                    public name?: (string|null);

                    /**
                     * Creates a new PolicyBinding instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PolicyBinding instance
                     */
                    public static create(properties?: google.container.v1beta1.BinaryAuthorization.IPolicyBinding): google.container.v1beta1.BinaryAuthorization.PolicyBinding;

                    /**
                     * Encodes the specified PolicyBinding message. Does not implicitly {@link google.container.v1beta1.BinaryAuthorization.PolicyBinding.verify|verify} messages.
                     * @param message PolicyBinding message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.container.v1beta1.BinaryAuthorization.IPolicyBinding, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PolicyBinding message, length delimited. Does not implicitly {@link google.container.v1beta1.BinaryAuthorization.PolicyBinding.verify|verify} messages.
                     * @param message PolicyBinding message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.container.v1beta1.BinaryAuthorization.IPolicyBinding, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PolicyBinding message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PolicyBinding
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.BinaryAuthorization.PolicyBinding;

                    /**
                     * Decodes a PolicyBinding message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PolicyBinding
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.BinaryAuthorization.PolicyBinding;

                    /**
                     * Verifies a PolicyBinding message.
                     * @param message Plain 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 PolicyBinding message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PolicyBinding
                     */
                    public static fromObject(object: { [k: string]: any }): google.container.v1beta1.BinaryAuthorization.PolicyBinding;

                    /**
                     * Creates a plain object from a PolicyBinding message. Also converts values to other types if specified.
                     * @param message PolicyBinding
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.container.v1beta1.BinaryAuthorization.PolicyBinding, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PolicyBinding to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PolicyBinding
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }
            }

            /** Properties of a PodSecurityPolicyConfig. */
            interface IPodSecurityPolicyConfig {

                /** PodSecurityPolicyConfig enabled */
                enabled?: (boolean|null);
            }

            /** Represents a PodSecurityPolicyConfig. */
            class PodSecurityPolicyConfig implements IPodSecurityPolicyConfig {

                /**
                 * Constructs a new PodSecurityPolicyConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IPodSecurityPolicyConfig);

                /** PodSecurityPolicyConfig enabled. */
                public enabled: boolean;

                /**
                 * Creates a new PodSecurityPolicyConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns PodSecurityPolicyConfig instance
                 */
                public static create(properties?: google.container.v1beta1.IPodSecurityPolicyConfig): google.container.v1beta1.PodSecurityPolicyConfig;

                /**
                 * Encodes the specified PodSecurityPolicyConfig message. Does not implicitly {@link google.container.v1beta1.PodSecurityPolicyConfig.verify|verify} messages.
                 * @param message PodSecurityPolicyConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IPodSecurityPolicyConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified PodSecurityPolicyConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.PodSecurityPolicyConfig.verify|verify} messages.
                 * @param message PodSecurityPolicyConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IPodSecurityPolicyConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a PodSecurityPolicyConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns PodSecurityPolicyConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.PodSecurityPolicyConfig;

                /**
                 * Decodes a PodSecurityPolicyConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns PodSecurityPolicyConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.PodSecurityPolicyConfig;

                /**
                 * Verifies a PodSecurityPolicyConfig message.
                 * @param message Plain 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 PodSecurityPolicyConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns PodSecurityPolicyConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.PodSecurityPolicyConfig;

                /**
                 * Creates a plain object from a PodSecurityPolicyConfig message. Also converts values to other types if specified.
                 * @param message PodSecurityPolicyConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.PodSecurityPolicyConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this PodSecurityPolicyConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for PodSecurityPolicyConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of an AuthenticatorGroupsConfig. */
            interface IAuthenticatorGroupsConfig {

                /** AuthenticatorGroupsConfig enabled */
                enabled?: (boolean|null);

                /** AuthenticatorGroupsConfig securityGroup */
                securityGroup?: (string|null);
            }

            /** Represents an AuthenticatorGroupsConfig. */
            class AuthenticatorGroupsConfig implements IAuthenticatorGroupsConfig {

                /**
                 * Constructs a new AuthenticatorGroupsConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IAuthenticatorGroupsConfig);

                /** AuthenticatorGroupsConfig enabled. */
                public enabled: boolean;

                /** AuthenticatorGroupsConfig securityGroup. */
                public securityGroup: string;

                /**
                 * Creates a new AuthenticatorGroupsConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns AuthenticatorGroupsConfig instance
                 */
                public static create(properties?: google.container.v1beta1.IAuthenticatorGroupsConfig): google.container.v1beta1.AuthenticatorGroupsConfig;

                /**
                 * Encodes the specified AuthenticatorGroupsConfig message. Does not implicitly {@link google.container.v1beta1.AuthenticatorGroupsConfig.verify|verify} messages.
                 * @param message AuthenticatorGroupsConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IAuthenticatorGroupsConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified AuthenticatorGroupsConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.AuthenticatorGroupsConfig.verify|verify} messages.
                 * @param message AuthenticatorGroupsConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IAuthenticatorGroupsConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes an AuthenticatorGroupsConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns AuthenticatorGroupsConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.AuthenticatorGroupsConfig;

                /**
                 * Decodes an AuthenticatorGroupsConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns AuthenticatorGroupsConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.AuthenticatorGroupsConfig;

                /**
                 * Verifies an AuthenticatorGroupsConfig message.
                 * @param message Plain 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 AuthenticatorGroupsConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns AuthenticatorGroupsConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.AuthenticatorGroupsConfig;

                /**
                 * Creates a plain object from an AuthenticatorGroupsConfig message. Also converts values to other types if specified.
                 * @param message AuthenticatorGroupsConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.AuthenticatorGroupsConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this AuthenticatorGroupsConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for AuthenticatorGroupsConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a ClusterTelemetry. */
            interface IClusterTelemetry {

                /** ClusterTelemetry type */
                type?: (google.container.v1beta1.ClusterTelemetry.Type|keyof typeof google.container.v1beta1.ClusterTelemetry.Type|null);
            }

            /** Represents a ClusterTelemetry. */
            class ClusterTelemetry implements IClusterTelemetry {

                /**
                 * Constructs a new ClusterTelemetry.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IClusterTelemetry);

                /** ClusterTelemetry type. */
                public type: (google.container.v1beta1.ClusterTelemetry.Type|keyof typeof google.container.v1beta1.ClusterTelemetry.Type);

                /**
                 * Creates a new ClusterTelemetry instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ClusterTelemetry instance
                 */
                public static create(properties?: google.container.v1beta1.IClusterTelemetry): google.container.v1beta1.ClusterTelemetry;

                /**
                 * Encodes the specified ClusterTelemetry message. Does not implicitly {@link google.container.v1beta1.ClusterTelemetry.verify|verify} messages.
                 * @param message ClusterTelemetry message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IClusterTelemetry, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified ClusterTelemetry message, length delimited. Does not implicitly {@link google.container.v1beta1.ClusterTelemetry.verify|verify} messages.
                 * @param message ClusterTelemetry message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IClusterTelemetry, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a ClusterTelemetry message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ClusterTelemetry
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.ClusterTelemetry;

                /**
                 * Decodes a ClusterTelemetry message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ClusterTelemetry
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.ClusterTelemetry;

                /**
                 * Verifies a ClusterTelemetry message.
                 * @param message Plain 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 ClusterTelemetry message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ClusterTelemetry
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.ClusterTelemetry;

                /**
                 * Creates a plain object from a ClusterTelemetry message. Also converts values to other types if specified.
                 * @param message ClusterTelemetry
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.ClusterTelemetry, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ClusterTelemetry to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for ClusterTelemetry
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace ClusterTelemetry {

                /** Type enum. */
                enum Type {
                    UNSPECIFIED = 0,
                    DISABLED = 1,
                    ENABLED = 2,
                    SYSTEM_ONLY = 3
                }
            }

            /** Properties of a Cluster. */
            interface ICluster {

                /** Cluster name */
                name?: (string|null);

                /** Cluster description */
                description?: (string|null);

                /** Cluster initialNodeCount */
                initialNodeCount?: (number|null);

                /** Cluster nodeConfig */
                nodeConfig?: (google.container.v1beta1.INodeConfig|null);

                /** Cluster masterAuth */
                masterAuth?: (google.container.v1beta1.IMasterAuth|null);

                /** Cluster loggingService */
                loggingService?: (string|null);

                /** Cluster monitoringService */
                monitoringService?: (string|null);

                /** Cluster network */
                network?: (string|null);

                /** Cluster clusterIpv4Cidr */
                clusterIpv4Cidr?: (string|null);

                /** Cluster addonsConfig */
                addonsConfig?: (google.container.v1beta1.IAddonsConfig|null);

                /** Cluster subnetwork */
                subnetwork?: (string|null);

                /** Cluster nodePools */
                nodePools?: (google.container.v1beta1.INodePool[]|null);

                /** Cluster locations */
                locations?: (string[]|null);

                /** Cluster enableKubernetesAlpha */
                enableKubernetesAlpha?: (boolean|null);

                /** Cluster alphaClusterFeatureGates */
                alphaClusterFeatureGates?: (string[]|null);

                /** Cluster enableK8sBetaApis */
                enableK8sBetaApis?: (google.container.v1beta1.IK8sBetaAPIConfig|null);

                /** Cluster resourceLabels */
                resourceLabels?: ({ [k: string]: string }|null);

                /** Cluster labelFingerprint */
                labelFingerprint?: (string|null);

                /** Cluster legacyAbac */
                legacyAbac?: (google.container.v1beta1.ILegacyAbac|null);

                /** Cluster networkPolicy */
                networkPolicy?: (google.container.v1beta1.INetworkPolicy|null);

                /** Cluster ipAllocationPolicy */
                ipAllocationPolicy?: (google.container.v1beta1.IIPAllocationPolicy|null);

                /** Cluster masterAuthorizedNetworksConfig */
                masterAuthorizedNetworksConfig?: (google.container.v1beta1.IMasterAuthorizedNetworksConfig|null);

                /** Cluster maintenancePolicy */
                maintenancePolicy?: (google.container.v1beta1.IMaintenancePolicy|null);

                /** Cluster binaryAuthorization */
                binaryAuthorization?: (google.container.v1beta1.IBinaryAuthorization|null);

                /** Cluster podSecurityPolicyConfig */
                podSecurityPolicyConfig?: (google.container.v1beta1.IPodSecurityPolicyConfig|null);

                /** Cluster autoscaling */
                autoscaling?: (google.container.v1beta1.IClusterAutoscaling|null);

                /** Cluster networkConfig */
                networkConfig?: (google.container.v1beta1.INetworkConfig|null);

                /** Cluster privateCluster */
                privateCluster?: (boolean|null);

                /** Cluster masterIpv4CidrBlock */
                masterIpv4CidrBlock?: (string|null);

                /** Cluster defaultMaxPodsConstraint */
                defaultMaxPodsConstraint?: (google.container.v1beta1.IMaxPodsConstraint|null);

                /** Cluster resourceUsageExportConfig */
                resourceUsageExportConfig?: (google.container.v1beta1.IResourceUsageExportConfig|null);

                /** Cluster authenticatorGroupsConfig */
                authenticatorGroupsConfig?: (google.container.v1beta1.IAuthenticatorGroupsConfig|null);

                /** Cluster privateClusterConfig */
                privateClusterConfig?: (google.container.v1beta1.IPrivateClusterConfig|null);

                /** Cluster verticalPodAutoscaling */
                verticalPodAutoscaling?: (google.container.v1beta1.IVerticalPodAutoscaling|null);

                /** Cluster shieldedNodes */
                shieldedNodes?: (google.container.v1beta1.IShieldedNodes|null);

                /** Cluster releaseChannel */
                releaseChannel?: (google.container.v1beta1.IReleaseChannel|null);

                /** Cluster workloadIdentityConfig */
                workloadIdentityConfig?: (google.container.v1beta1.IWorkloadIdentityConfig|null);

                /** Cluster workloadCertificates */
                workloadCertificates?: (google.container.v1beta1.IWorkloadCertificates|null);

                /** Cluster meshCertificates */
                meshCertificates?: (google.container.v1beta1.IMeshCertificates|null);

                /** Cluster workloadAltsConfig */
                workloadAltsConfig?: (google.container.v1beta1.IWorkloadALTSConfig|null);

                /** Cluster costManagementConfig */
                costManagementConfig?: (google.container.v1beta1.ICostManagementConfig|null);

                /** Cluster clusterTelemetry */
                clusterTelemetry?: (google.container.v1beta1.IClusterTelemetry|null);

                /** Cluster tpuConfig */
                tpuConfig?: (google.container.v1beta1.ITpuConfig|null);

                /** Cluster notificationConfig */
                notificationConfig?: (google.container.v1beta1.INotificationConfig|null);

                /** Cluster confidentialNodes */
                confidentialNodes?: (google.container.v1beta1.IConfidentialNodes|null);

                /** Cluster identityServiceConfig */
                identityServiceConfig?: (google.container.v1beta1.IIdentityServiceConfig|null);

                /** Cluster selfLink */
                selfLink?: (string|null);

                /** Cluster zone */
                zone?: (string|null);

                /** Cluster endpoint */
                endpoint?: (string|null);

                /** Cluster initialClusterVersion */
                initialClusterVersion?: (string|null);

                /** Cluster currentMasterVersion */
                currentMasterVersion?: (string|null);

                /** Cluster currentEmulatedVersion */
                currentEmulatedVersion?: (string|null);

                /** Cluster rollbackSafeUpgrade */
                rollbackSafeUpgrade?: (google.container.v1beta1.IRollbackSafeUpgrade|null);

                /** Cluster nodePoolUpgradeConcurrencyConfig */
                nodePoolUpgradeConcurrencyConfig?: (google.container.v1beta1.INodePoolUpgradeConcurrencyConfig|null);

                /** Cluster currentNodeVersion */
                currentNodeVersion?: (string|null);

                /** Cluster createTime */
                createTime?: (string|null);

                /** Cluster status */
                status?: (google.container.v1beta1.Cluster.Status|keyof typeof google.container.v1beta1.Cluster.Status|null);

                /** Cluster statusMessage */
                statusMessage?: (string|null);

                /** Cluster nodeIpv4CidrSize */
                nodeIpv4CidrSize?: (number|null);

                /** Cluster servicesIpv4Cidr */
                servicesIpv4Cidr?: (string|null);

                /** Cluster instanceGroupUrls */
                instanceGroupUrls?: (string[]|null);

                /** Cluster currentNodeCount */
                currentNodeCount?: (number|null);

                /** Cluster expireTime */
                expireTime?: (string|null);

                /** Cluster location */
                location?: (string|null);

                /** Cluster enableTpu */
                enableTpu?: (boolean|null);

                /** Cluster tpuIpv4CidrBlock */
                tpuIpv4CidrBlock?: (string|null);

                /** Cluster databaseEncryption */
                databaseEncryption?: (google.container.v1beta1.IDatabaseEncryption|null);

                /** Cluster conditions */
                conditions?: (google.container.v1beta1.IStatusCondition[]|null);

                /** Cluster master */
                master?: (google.container.v1beta1.IMaster|null);

                /** Cluster autopilot */
                autopilot?: (google.container.v1beta1.IAutopilot|null);

                /** Cluster id */
                id?: (string|null);

                /** Cluster nodePoolDefaults */
                nodePoolDefaults?: (google.container.v1beta1.INodePoolDefaults|null);

                /** Cluster loggingConfig */
                loggingConfig?: (google.container.v1beta1.ILoggingConfig|null);

                /** Cluster monitoringConfig */
                monitoringConfig?: (google.container.v1beta1.IMonitoringConfig|null);

                /** Cluster nodePoolAutoConfig */
                nodePoolAutoConfig?: (google.container.v1beta1.INodePoolAutoConfig|null);

                /** Cluster protectConfig */
                protectConfig?: (google.container.v1beta1.IProtectConfig|null);

                /** Cluster podAutoscaling */
                podAutoscaling?: (google.container.v1beta1.IPodAutoscaling|null);

                /** Cluster etag */
                etag?: (string|null);

                /** Cluster fleet */
                fleet?: (google.container.v1beta1.IFleet|null);

                /** Cluster securityPostureConfig */
                securityPostureConfig?: (google.container.v1beta1.ISecurityPostureConfig|null);

                /** Cluster controlPlaneEndpointsConfig */
                controlPlaneEndpointsConfig?: (google.container.v1beta1.IControlPlaneEndpointsConfig|null);

                /** Cluster enterpriseConfig */
                enterpriseConfig?: (google.container.v1beta1.IEnterpriseConfig|null);

                /** Cluster secretManagerConfig */
                secretManagerConfig?: (google.container.v1beta1.ISecretManagerConfig|null);

                /** Cluster compliancePostureConfig */
                compliancePostureConfig?: (google.container.v1beta1.ICompliancePostureConfig|null);

                /** Cluster satisfiesPzs */
                satisfiesPzs?: (boolean|null);

                /** Cluster satisfiesPzi */
                satisfiesPzi?: (boolean|null);

                /** Cluster userManagedKeysConfig */
                userManagedKeysConfig?: (google.container.v1beta1.IUserManagedKeysConfig|null);

                /** Cluster rbacBindingConfig */
                rbacBindingConfig?: (google.container.v1beta1.IRBACBindingConfig|null);

                /** Cluster gkeAutoUpgradeConfig */
                gkeAutoUpgradeConfig?: (google.container.v1beta1.IGkeAutoUpgradeConfig|null);

                /** Cluster anonymousAuthenticationConfig */
                anonymousAuthenticationConfig?: (google.container.v1beta1.IAnonymousAuthenticationConfig|null);

                /** Cluster scheduleUpgradeConfig */
                scheduleUpgradeConfig?: (google.container.v1beta1.IScheduleUpgradeConfig|null);

                /** Cluster secretSyncConfig */
                secretSyncConfig?: (google.container.v1beta1.ISecretSyncConfig|null);

                /** Cluster managedOpentelemetryConfig */
                managedOpentelemetryConfig?: (google.container.v1beta1.IManagedOpenTelemetryConfig|null);

                /** Cluster controlPlaneEgress */
                controlPlaneEgress?: (google.container.v1beta1.IControlPlaneEgress|null);

                /** Cluster managedMachineLearningDiagnosticsConfig */
                managedMachineLearningDiagnosticsConfig?: (google.container.v1beta1.IManagedMachineLearningDiagnosticsConfig|null);

                /** Cluster nodeCreationConfig */
                nodeCreationConfig?: (google.container.v1beta1.INodeCreationConfig|null);
            }

            /** Represents a Cluster. */
            class Cluster implements ICluster {

                /**
                 * Constructs a new Cluster.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.ICluster);

                /** Cluster name. */
                public name: string;

                /** Cluster description. */
                public description: string;

                /** Cluster initialNodeCount. */
                public initialNodeCount: number;

                /** Cluster nodeConfig. */
                public nodeConfig?: (google.container.v1beta1.INodeConfig|null);

                /** Cluster masterAuth. */
                public masterAuth?: (google.container.v1beta1.IMasterAuth|null);

                /** Cluster loggingService. */
                public loggingService: string;

                /** Cluster monitoringService. */
                public monitoringService: string;

                /** Cluster network. */
                public network: string;

                /** Cluster clusterIpv4Cidr. */
                public clusterIpv4Cidr: string;

                /** Cluster addonsConfig. */
                public addonsConfig?: (google.container.v1beta1.IAddonsConfig|null);

                /** Cluster subnetwork. */
                public subnetwork: string;

                /** Cluster nodePools. */
                public nodePools: google.container.v1beta1.INodePool[];

                /** Cluster locations. */
                public locations: string[];

                /** Cluster enableKubernetesAlpha. */
                public enableKubernetesAlpha: boolean;

                /** Cluster alphaClusterFeatureGates. */
                public alphaClusterFeatureGates: string[];

                /** Cluster enableK8sBetaApis. */
                public enableK8sBetaApis?: (google.container.v1beta1.IK8sBetaAPIConfig|null);

                /** Cluster resourceLabels. */
                public resourceLabels: { [k: string]: string };

                /** Cluster labelFingerprint. */
                public labelFingerprint: string;

                /** Cluster legacyAbac. */
                public legacyAbac?: (google.container.v1beta1.ILegacyAbac|null);

                /** Cluster networkPolicy. */
                public networkPolicy?: (google.container.v1beta1.INetworkPolicy|null);

                /** Cluster ipAllocationPolicy. */
                public ipAllocationPolicy?: (google.container.v1beta1.IIPAllocationPolicy|null);

                /** Cluster masterAuthorizedNetworksConfig. */
                public masterAuthorizedNetworksConfig?: (google.container.v1beta1.IMasterAuthorizedNetworksConfig|null);

                /** Cluster maintenancePolicy. */
                public maintenancePolicy?: (google.container.v1beta1.IMaintenancePolicy|null);

                /** Cluster binaryAuthorization. */
                public binaryAuthorization?: (google.container.v1beta1.IBinaryAuthorization|null);

                /** Cluster podSecurityPolicyConfig. */
                public podSecurityPolicyConfig?: (google.container.v1beta1.IPodSecurityPolicyConfig|null);

                /** Cluster autoscaling. */
                public autoscaling?: (google.container.v1beta1.IClusterAutoscaling|null);

                /** Cluster networkConfig. */
                public networkConfig?: (google.container.v1beta1.INetworkConfig|null);

                /** Cluster privateCluster. */
                public privateCluster: boolean;

                /** Cluster masterIpv4CidrBlock. */
                public masterIpv4CidrBlock: string;

                /** Cluster defaultMaxPodsConstraint. */
                public defaultMaxPodsConstraint?: (google.container.v1beta1.IMaxPodsConstraint|null);

                /** Cluster resourceUsageExportConfig. */
                public resourceUsageExportConfig?: (google.container.v1beta1.IResourceUsageExportConfig|null);

                /** Cluster authenticatorGroupsConfig. */
                public authenticatorGroupsConfig?: (google.container.v1beta1.IAuthenticatorGroupsConfig|null);

                /** Cluster privateClusterConfig. */
                public privateClusterConfig?: (google.container.v1beta1.IPrivateClusterConfig|null);

                /** Cluster verticalPodAutoscaling. */
                public verticalPodAutoscaling?: (google.container.v1beta1.IVerticalPodAutoscaling|null);

                /** Cluster shieldedNodes. */
                public shieldedNodes?: (google.container.v1beta1.IShieldedNodes|null);

                /** Cluster releaseChannel. */
                public releaseChannel?: (google.container.v1beta1.IReleaseChannel|null);

                /** Cluster workloadIdentityConfig. */
                public workloadIdentityConfig?: (google.container.v1beta1.IWorkloadIdentityConfig|null);

                /** Cluster workloadCertificates. */
                public workloadCertificates?: (google.container.v1beta1.IWorkloadCertificates|null);

                /** Cluster meshCertificates. */
                public meshCertificates?: (google.container.v1beta1.IMeshCertificates|null);

                /** Cluster workloadAltsConfig. */
                public workloadAltsConfig?: (google.container.v1beta1.IWorkloadALTSConfig|null);

                /** Cluster costManagementConfig. */
                public costManagementConfig?: (google.container.v1beta1.ICostManagementConfig|null);

                /** Cluster clusterTelemetry. */
                public clusterTelemetry?: (google.container.v1beta1.IClusterTelemetry|null);

                /** Cluster tpuConfig. */
                public tpuConfig?: (google.container.v1beta1.ITpuConfig|null);

                /** Cluster notificationConfig. */
                public notificationConfig?: (google.container.v1beta1.INotificationConfig|null);

                /** Cluster confidentialNodes. */
                public confidentialNodes?: (google.container.v1beta1.IConfidentialNodes|null);

                /** Cluster identityServiceConfig. */
                public identityServiceConfig?: (google.container.v1beta1.IIdentityServiceConfig|null);

                /** Cluster selfLink. */
                public selfLink: string;

                /** Cluster zone. */
                public zone: string;

                /** Cluster endpoint. */
                public endpoint: string;

                /** Cluster initialClusterVersion. */
                public initialClusterVersion: string;

                /** Cluster currentMasterVersion. */
                public currentMasterVersion: string;

                /** Cluster currentEmulatedVersion. */
                public currentEmulatedVersion: string;

                /** Cluster rollbackSafeUpgrade. */
                public rollbackSafeUpgrade?: (google.container.v1beta1.IRollbackSafeUpgrade|null);

                /** Cluster nodePoolUpgradeConcurrencyConfig. */
                public nodePoolUpgradeConcurrencyConfig?: (google.container.v1beta1.INodePoolUpgradeConcurrencyConfig|null);

                /** Cluster currentNodeVersion. */
                public currentNodeVersion: string;

                /** Cluster createTime. */
                public createTime: string;

                /** Cluster status. */
                public status: (google.container.v1beta1.Cluster.Status|keyof typeof google.container.v1beta1.Cluster.Status);

                /** Cluster statusMessage. */
                public statusMessage: string;

                /** Cluster nodeIpv4CidrSize. */
                public nodeIpv4CidrSize: number;

                /** Cluster servicesIpv4Cidr. */
                public servicesIpv4Cidr: string;

                /** Cluster instanceGroupUrls. */
                public instanceGroupUrls: string[];

                /** Cluster currentNodeCount. */
                public currentNodeCount: number;

                /** Cluster expireTime. */
                public expireTime: string;

                /** Cluster location. */
                public location: string;

                /** Cluster enableTpu. */
                public enableTpu: boolean;

                /** Cluster tpuIpv4CidrBlock. */
                public tpuIpv4CidrBlock: string;

                /** Cluster databaseEncryption. */
                public databaseEncryption?: (google.container.v1beta1.IDatabaseEncryption|null);

                /** Cluster conditions. */
                public conditions: google.container.v1beta1.IStatusCondition[];

                /** Cluster master. */
                public master?: (google.container.v1beta1.IMaster|null);

                /** Cluster autopilot. */
                public autopilot?: (google.container.v1beta1.IAutopilot|null);

                /** Cluster id. */
                public id: string;

                /** Cluster nodePoolDefaults. */
                public nodePoolDefaults?: (google.container.v1beta1.INodePoolDefaults|null);

                /** Cluster loggingConfig. */
                public loggingConfig?: (google.container.v1beta1.ILoggingConfig|null);

                /** Cluster monitoringConfig. */
                public monitoringConfig?: (google.container.v1beta1.IMonitoringConfig|null);

                /** Cluster nodePoolAutoConfig. */
                public nodePoolAutoConfig?: (google.container.v1beta1.INodePoolAutoConfig|null);

                /** Cluster protectConfig. */
                public protectConfig?: (google.container.v1beta1.IProtectConfig|null);

                /** Cluster podAutoscaling. */
                public podAutoscaling?: (google.container.v1beta1.IPodAutoscaling|null);

                /** Cluster etag. */
                public etag: string;

                /** Cluster fleet. */
                public fleet?: (google.container.v1beta1.IFleet|null);

                /** Cluster securityPostureConfig. */
                public securityPostureConfig?: (google.container.v1beta1.ISecurityPostureConfig|null);

                /** Cluster controlPlaneEndpointsConfig. */
                public controlPlaneEndpointsConfig?: (google.container.v1beta1.IControlPlaneEndpointsConfig|null);

                /** Cluster enterpriseConfig. */
                public enterpriseConfig?: (google.container.v1beta1.IEnterpriseConfig|null);

                /** Cluster secretManagerConfig. */
                public secretManagerConfig?: (google.container.v1beta1.ISecretManagerConfig|null);

                /** Cluster compliancePostureConfig. */
                public compliancePostureConfig?: (google.container.v1beta1.ICompliancePostureConfig|null);

                /** Cluster satisfiesPzs. */
                public satisfiesPzs?: (boolean|null);

                /** Cluster satisfiesPzi. */
                public satisfiesPzi?: (boolean|null);

                /** Cluster userManagedKeysConfig. */
                public userManagedKeysConfig?: (google.container.v1beta1.IUserManagedKeysConfig|null);

                /** Cluster rbacBindingConfig. */
                public rbacBindingConfig?: (google.container.v1beta1.IRBACBindingConfig|null);

                /** Cluster gkeAutoUpgradeConfig. */
                public gkeAutoUpgradeConfig?: (google.container.v1beta1.IGkeAutoUpgradeConfig|null);

                /** Cluster anonymousAuthenticationConfig. */
                public anonymousAuthenticationConfig?: (google.container.v1beta1.IAnonymousAuthenticationConfig|null);

                /** Cluster scheduleUpgradeConfig. */
                public scheduleUpgradeConfig?: (google.container.v1beta1.IScheduleUpgradeConfig|null);

                /** Cluster secretSyncConfig. */
                public secretSyncConfig?: (google.container.v1beta1.ISecretSyncConfig|null);

                /** Cluster managedOpentelemetryConfig. */
                public managedOpentelemetryConfig?: (google.container.v1beta1.IManagedOpenTelemetryConfig|null);

                /** Cluster controlPlaneEgress. */
                public controlPlaneEgress?: (google.container.v1beta1.IControlPlaneEgress|null);

                /** Cluster managedMachineLearningDiagnosticsConfig. */
                public managedMachineLearningDiagnosticsConfig?: (google.container.v1beta1.IManagedMachineLearningDiagnosticsConfig|null);

                /** Cluster nodeCreationConfig. */
                public nodeCreationConfig?: (google.container.v1beta1.INodeCreationConfig|null);

                /**
                 * Creates a new Cluster instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns Cluster instance
                 */
                public static create(properties?: google.container.v1beta1.ICluster): google.container.v1beta1.Cluster;

                /**
                 * Encodes the specified Cluster message. Does not implicitly {@link google.container.v1beta1.Cluster.verify|verify} messages.
                 * @param message Cluster message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.ICluster, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified Cluster message, length delimited. Does not implicitly {@link google.container.v1beta1.Cluster.verify|verify} messages.
                 * @param message Cluster message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.ICluster, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a Cluster message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns Cluster
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.Cluster;

                /**
                 * Decodes a Cluster message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns Cluster
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.Cluster;

                /**
                 * Verifies a Cluster message.
                 * @param message Plain 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 Cluster message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns Cluster
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.Cluster;

                /**
                 * Creates a plain object from a Cluster message. Also converts values to other types if specified.
                 * @param message Cluster
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.Cluster, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this Cluster to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for Cluster
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace Cluster {

                /** Status enum. */
                enum Status {
                    STATUS_UNSPECIFIED = 0,
                    PROVISIONING = 1,
                    RUNNING = 2,
                    RECONCILING = 3,
                    STOPPING = 4,
                    ERROR = 5,
                    DEGRADED = 6
                }
            }

            /** Properties of a NodeCreationConfig. */
            interface INodeCreationConfig {

                /** NodeCreationConfig nodeCreationMode */
                nodeCreationMode?: (google.container.v1beta1.NodeCreationConfig.Mode|keyof typeof google.container.v1beta1.NodeCreationConfig.Mode|null);
            }

            /** Represents a NodeCreationConfig. */
            class NodeCreationConfig implements INodeCreationConfig {

                /**
                 * Constructs a new NodeCreationConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.INodeCreationConfig);

                /** NodeCreationConfig nodeCreationMode. */
                public nodeCreationMode: (google.container.v1beta1.NodeCreationConfig.Mode|keyof typeof google.container.v1beta1.NodeCreationConfig.Mode);

                /**
                 * Creates a new NodeCreationConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns NodeCreationConfig instance
                 */
                public static create(properties?: google.container.v1beta1.INodeCreationConfig): google.container.v1beta1.NodeCreationConfig;

                /**
                 * Encodes the specified NodeCreationConfig message. Does not implicitly {@link google.container.v1beta1.NodeCreationConfig.verify|verify} messages.
                 * @param message NodeCreationConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.INodeCreationConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified NodeCreationConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.NodeCreationConfig.verify|verify} messages.
                 * @param message NodeCreationConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.INodeCreationConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a NodeCreationConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns NodeCreationConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.NodeCreationConfig;

                /**
                 * Decodes a NodeCreationConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns NodeCreationConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.NodeCreationConfig;

                /**
                 * Verifies a NodeCreationConfig message.
                 * @param message Plain 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 NodeCreationConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns NodeCreationConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.NodeCreationConfig;

                /**
                 * Creates a plain object from a NodeCreationConfig message. Also converts values to other types if specified.
                 * @param message NodeCreationConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.NodeCreationConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this NodeCreationConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for NodeCreationConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace NodeCreationConfig {

                /** Mode enum. */
                enum Mode {
                    MODE_UNSPECIFIED = 0,
                    VIA_KUBELET = 1,
                    VIA_CONTROL_PLANE = 2
                }
            }

            /** Properties of a ControlPlaneEgress. */
            interface IControlPlaneEgress {

                /** ControlPlaneEgress mode */
                mode?: (google.container.v1beta1.ControlPlaneEgress.Mode|keyof typeof google.container.v1beta1.ControlPlaneEgress.Mode|null);
            }

            /** Represents a ControlPlaneEgress. */
            class ControlPlaneEgress implements IControlPlaneEgress {

                /**
                 * Constructs a new ControlPlaneEgress.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IControlPlaneEgress);

                /** ControlPlaneEgress mode. */
                public mode: (google.container.v1beta1.ControlPlaneEgress.Mode|keyof typeof google.container.v1beta1.ControlPlaneEgress.Mode);

                /**
                 * Creates a new ControlPlaneEgress instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ControlPlaneEgress instance
                 */
                public static create(properties?: google.container.v1beta1.IControlPlaneEgress): google.container.v1beta1.ControlPlaneEgress;

                /**
                 * Encodes the specified ControlPlaneEgress message. Does not implicitly {@link google.container.v1beta1.ControlPlaneEgress.verify|verify} messages.
                 * @param message ControlPlaneEgress message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IControlPlaneEgress, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified ControlPlaneEgress message, length delimited. Does not implicitly {@link google.container.v1beta1.ControlPlaneEgress.verify|verify} messages.
                 * @param message ControlPlaneEgress message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IControlPlaneEgress, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a ControlPlaneEgress message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ControlPlaneEgress
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.ControlPlaneEgress;

                /**
                 * Decodes a ControlPlaneEgress message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ControlPlaneEgress
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.ControlPlaneEgress;

                /**
                 * Verifies a ControlPlaneEgress message.
                 * @param message Plain 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 ControlPlaneEgress message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ControlPlaneEgress
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.ControlPlaneEgress;

                /**
                 * Creates a plain object from a ControlPlaneEgress message. Also converts values to other types if specified.
                 * @param message ControlPlaneEgress
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.ControlPlaneEgress, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ControlPlaneEgress to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for ControlPlaneEgress
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace ControlPlaneEgress {

                /** Mode enum. */
                enum Mode {
                    MODE_UNSPECIFIED = 0,
                    VIA_CONTROL_PLANE = 1,
                    NONE = 2
                }
            }

            /** Properties of a RBACBindingConfig. */
            interface IRBACBindingConfig {

                /** RBACBindingConfig enableInsecureBindingSystemUnauthenticated */
                enableInsecureBindingSystemUnauthenticated?: (boolean|null);

                /** RBACBindingConfig enableInsecureBindingSystemAuthenticated */
                enableInsecureBindingSystemAuthenticated?: (boolean|null);
            }

            /** Represents a RBACBindingConfig. */
            class RBACBindingConfig implements IRBACBindingConfig {

                /**
                 * Constructs a new RBACBindingConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IRBACBindingConfig);

                /** RBACBindingConfig enableInsecureBindingSystemUnauthenticated. */
                public enableInsecureBindingSystemUnauthenticated?: (boolean|null);

                /** RBACBindingConfig enableInsecureBindingSystemAuthenticated. */
                public enableInsecureBindingSystemAuthenticated?: (boolean|null);

                /**
                 * Creates a new RBACBindingConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns RBACBindingConfig instance
                 */
                public static create(properties?: google.container.v1beta1.IRBACBindingConfig): google.container.v1beta1.RBACBindingConfig;

                /**
                 * Encodes the specified RBACBindingConfig message. Does not implicitly {@link google.container.v1beta1.RBACBindingConfig.verify|verify} messages.
                 * @param message RBACBindingConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IRBACBindingConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified RBACBindingConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.RBACBindingConfig.verify|verify} messages.
                 * @param message RBACBindingConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IRBACBindingConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a RBACBindingConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns RBACBindingConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.RBACBindingConfig;

                /**
                 * Decodes a RBACBindingConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns RBACBindingConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.RBACBindingConfig;

                /**
                 * Verifies a RBACBindingConfig message.
                 * @param message Plain 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 RBACBindingConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns RBACBindingConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.RBACBindingConfig;

                /**
                 * Creates a plain object from a RBACBindingConfig message. Also converts values to other types if specified.
                 * @param message RBACBindingConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.RBACBindingConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this RBACBindingConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for RBACBindingConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a UserManagedKeysConfig. */
            interface IUserManagedKeysConfig {

                /** UserManagedKeysConfig clusterCa */
                clusterCa?: (string|null);

                /** UserManagedKeysConfig etcdApiCa */
                etcdApiCa?: (string|null);

                /** UserManagedKeysConfig etcdPeerCa */
                etcdPeerCa?: (string|null);

                /** UserManagedKeysConfig serviceAccountSigningKeys */
                serviceAccountSigningKeys?: (string[]|null);

                /** UserManagedKeysConfig serviceAccountVerificationKeys */
                serviceAccountVerificationKeys?: (string[]|null);

                /** UserManagedKeysConfig aggregationCa */
                aggregationCa?: (string|null);

                /** UserManagedKeysConfig controlPlaneDiskEncryptionKey */
                controlPlaneDiskEncryptionKey?: (string|null);

                /** UserManagedKeysConfig controlPlaneDiskEncryptionKeyVersions */
                controlPlaneDiskEncryptionKeyVersions?: (string[]|null);

                /** UserManagedKeysConfig gkeopsEtcdBackupEncryptionKey */
                gkeopsEtcdBackupEncryptionKey?: (string|null);
            }

            /** Represents a UserManagedKeysConfig. */
            class UserManagedKeysConfig implements IUserManagedKeysConfig {

                /**
                 * Constructs a new UserManagedKeysConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IUserManagedKeysConfig);

                /** UserManagedKeysConfig clusterCa. */
                public clusterCa: string;

                /** UserManagedKeysConfig etcdApiCa. */
                public etcdApiCa: string;

                /** UserManagedKeysConfig etcdPeerCa. */
                public etcdPeerCa: string;

                /** UserManagedKeysConfig serviceAccountSigningKeys. */
                public serviceAccountSigningKeys: string[];

                /** UserManagedKeysConfig serviceAccountVerificationKeys. */
                public serviceAccountVerificationKeys: string[];

                /** UserManagedKeysConfig aggregationCa. */
                public aggregationCa: string;

                /** UserManagedKeysConfig controlPlaneDiskEncryptionKey. */
                public controlPlaneDiskEncryptionKey: string;

                /** UserManagedKeysConfig controlPlaneDiskEncryptionKeyVersions. */
                public controlPlaneDiskEncryptionKeyVersions: string[];

                /** UserManagedKeysConfig gkeopsEtcdBackupEncryptionKey. */
                public gkeopsEtcdBackupEncryptionKey: string;

                /**
                 * Creates a new UserManagedKeysConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns UserManagedKeysConfig instance
                 */
                public static create(properties?: google.container.v1beta1.IUserManagedKeysConfig): google.container.v1beta1.UserManagedKeysConfig;

                /**
                 * Encodes the specified UserManagedKeysConfig message. Does not implicitly {@link google.container.v1beta1.UserManagedKeysConfig.verify|verify} messages.
                 * @param message UserManagedKeysConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IUserManagedKeysConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified UserManagedKeysConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.UserManagedKeysConfig.verify|verify} messages.
                 * @param message UserManagedKeysConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IUserManagedKeysConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a UserManagedKeysConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns UserManagedKeysConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.UserManagedKeysConfig;

                /**
                 * Decodes a UserManagedKeysConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns UserManagedKeysConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.UserManagedKeysConfig;

                /**
                 * Verifies a UserManagedKeysConfig message.
                 * @param message Plain 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 UserManagedKeysConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns UserManagedKeysConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.UserManagedKeysConfig;

                /**
                 * Creates a plain object from a UserManagedKeysConfig message. Also converts values to other types if specified.
                 * @param message UserManagedKeysConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.UserManagedKeysConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this UserManagedKeysConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for UserManagedKeysConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of an AnonymousAuthenticationConfig. */
            interface IAnonymousAuthenticationConfig {

                /** AnonymousAuthenticationConfig mode */
                mode?: (google.container.v1beta1.AnonymousAuthenticationConfig.Mode|keyof typeof google.container.v1beta1.AnonymousAuthenticationConfig.Mode|null);
            }

            /** Represents an AnonymousAuthenticationConfig. */
            class AnonymousAuthenticationConfig implements IAnonymousAuthenticationConfig {

                /**
                 * Constructs a new AnonymousAuthenticationConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IAnonymousAuthenticationConfig);

                /** AnonymousAuthenticationConfig mode. */
                public mode: (google.container.v1beta1.AnonymousAuthenticationConfig.Mode|keyof typeof google.container.v1beta1.AnonymousAuthenticationConfig.Mode);

                /**
                 * Creates a new AnonymousAuthenticationConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns AnonymousAuthenticationConfig instance
                 */
                public static create(properties?: google.container.v1beta1.IAnonymousAuthenticationConfig): google.container.v1beta1.AnonymousAuthenticationConfig;

                /**
                 * Encodes the specified AnonymousAuthenticationConfig message. Does not implicitly {@link google.container.v1beta1.AnonymousAuthenticationConfig.verify|verify} messages.
                 * @param message AnonymousAuthenticationConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IAnonymousAuthenticationConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified AnonymousAuthenticationConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.AnonymousAuthenticationConfig.verify|verify} messages.
                 * @param message AnonymousAuthenticationConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IAnonymousAuthenticationConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes an AnonymousAuthenticationConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns AnonymousAuthenticationConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.AnonymousAuthenticationConfig;

                /**
                 * Decodes an AnonymousAuthenticationConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns AnonymousAuthenticationConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.AnonymousAuthenticationConfig;

                /**
                 * Verifies an AnonymousAuthenticationConfig message.
                 * @param message Plain 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 AnonymousAuthenticationConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns AnonymousAuthenticationConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.AnonymousAuthenticationConfig;

                /**
                 * Creates a plain object from an AnonymousAuthenticationConfig message. Also converts values to other types if specified.
                 * @param message AnonymousAuthenticationConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.AnonymousAuthenticationConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this AnonymousAuthenticationConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for AnonymousAuthenticationConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace AnonymousAuthenticationConfig {

                /** Mode enum. */
                enum Mode {
                    MODE_UNSPECIFIED = 0,
                    ENABLED = 1,
                    LIMITED = 2
                }
            }

            /** Properties of a CompliancePostureConfig. */
            interface ICompliancePostureConfig {

                /** CompliancePostureConfig mode */
                mode?: (google.container.v1beta1.CompliancePostureConfig.Mode|keyof typeof google.container.v1beta1.CompliancePostureConfig.Mode|null);

                /** CompliancePostureConfig complianceStandards */
                complianceStandards?: (google.container.v1beta1.CompliancePostureConfig.IComplianceStandard[]|null);
            }

            /** Represents a CompliancePostureConfig. */
            class CompliancePostureConfig implements ICompliancePostureConfig {

                /**
                 * Constructs a new CompliancePostureConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.ICompliancePostureConfig);

                /** CompliancePostureConfig mode. */
                public mode?: (google.container.v1beta1.CompliancePostureConfig.Mode|keyof typeof google.container.v1beta1.CompliancePostureConfig.Mode|null);

                /** CompliancePostureConfig complianceStandards. */
                public complianceStandards: google.container.v1beta1.CompliancePostureConfig.IComplianceStandard[];

                /**
                 * Creates a new CompliancePostureConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns CompliancePostureConfig instance
                 */
                public static create(properties?: google.container.v1beta1.ICompliancePostureConfig): google.container.v1beta1.CompliancePostureConfig;

                /**
                 * Encodes the specified CompliancePostureConfig message. Does not implicitly {@link google.container.v1beta1.CompliancePostureConfig.verify|verify} messages.
                 * @param message CompliancePostureConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.ICompliancePostureConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified CompliancePostureConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.CompliancePostureConfig.verify|verify} messages.
                 * @param message CompliancePostureConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.ICompliancePostureConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a CompliancePostureConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns CompliancePostureConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.CompliancePostureConfig;

                /**
                 * Decodes a CompliancePostureConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns CompliancePostureConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.CompliancePostureConfig;

                /**
                 * Verifies a CompliancePostureConfig message.
                 * @param message Plain 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 CompliancePostureConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns CompliancePostureConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.CompliancePostureConfig;

                /**
                 * Creates a plain object from a CompliancePostureConfig message. Also converts values to other types if specified.
                 * @param message CompliancePostureConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.CompliancePostureConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this CompliancePostureConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for CompliancePostureConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace CompliancePostureConfig {

                /** Mode enum. */
                enum Mode {
                    MODE_UNSPECIFIED = 0,
                    DISABLED = 1,
                    ENABLED = 2
                }

                /** Properties of a ComplianceStandard. */
                interface IComplianceStandard {

                    /** ComplianceStandard standard */
                    standard?: (string|null);
                }

                /** Represents a ComplianceStandard. */
                class ComplianceStandard implements IComplianceStandard {

                    /**
                     * Constructs a new ComplianceStandard.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.container.v1beta1.CompliancePostureConfig.IComplianceStandard);

                    /** ComplianceStandard standard. */
                    public standard?: (string|null);

                    /**
                     * Creates a new ComplianceStandard instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ComplianceStandard instance
                     */
                    public static create(properties?: google.container.v1beta1.CompliancePostureConfig.IComplianceStandard): google.container.v1beta1.CompliancePostureConfig.ComplianceStandard;

                    /**
                     * Encodes the specified ComplianceStandard message. Does not implicitly {@link google.container.v1beta1.CompliancePostureConfig.ComplianceStandard.verify|verify} messages.
                     * @param message ComplianceStandard message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.container.v1beta1.CompliancePostureConfig.IComplianceStandard, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ComplianceStandard message, length delimited. Does not implicitly {@link google.container.v1beta1.CompliancePostureConfig.ComplianceStandard.verify|verify} messages.
                     * @param message ComplianceStandard message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.container.v1beta1.CompliancePostureConfig.IComplianceStandard, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ComplianceStandard message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ComplianceStandard
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.CompliancePostureConfig.ComplianceStandard;

                    /**
                     * Decodes a ComplianceStandard message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ComplianceStandard
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.CompliancePostureConfig.ComplianceStandard;

                    /**
                     * Verifies a ComplianceStandard message.
                     * @param message Plain 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 ComplianceStandard message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ComplianceStandard
                     */
                    public static fromObject(object: { [k: string]: any }): google.container.v1beta1.CompliancePostureConfig.ComplianceStandard;

                    /**
                     * Creates a plain object from a ComplianceStandard message. Also converts values to other types if specified.
                     * @param message ComplianceStandard
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.container.v1beta1.CompliancePostureConfig.ComplianceStandard, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ComplianceStandard to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ComplianceStandard
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }
            }

            /** Properties of a K8sBetaAPIConfig. */
            interface IK8sBetaAPIConfig {

                /** K8sBetaAPIConfig enabledApis */
                enabledApis?: (string[]|null);
            }

            /** Represents a K8sBetaAPIConfig. */
            class K8sBetaAPIConfig implements IK8sBetaAPIConfig {

                /**
                 * Constructs a new K8sBetaAPIConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IK8sBetaAPIConfig);

                /** K8sBetaAPIConfig enabledApis. */
                public enabledApis: string[];

                /**
                 * Creates a new K8sBetaAPIConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns K8sBetaAPIConfig instance
                 */
                public static create(properties?: google.container.v1beta1.IK8sBetaAPIConfig): google.container.v1beta1.K8sBetaAPIConfig;

                /**
                 * Encodes the specified K8sBetaAPIConfig message. Does not implicitly {@link google.container.v1beta1.K8sBetaAPIConfig.verify|verify} messages.
                 * @param message K8sBetaAPIConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IK8sBetaAPIConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified K8sBetaAPIConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.K8sBetaAPIConfig.verify|verify} messages.
                 * @param message K8sBetaAPIConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IK8sBetaAPIConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a K8sBetaAPIConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns K8sBetaAPIConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.K8sBetaAPIConfig;

                /**
                 * Decodes a K8sBetaAPIConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns K8sBetaAPIConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.K8sBetaAPIConfig;

                /**
                 * Verifies a K8sBetaAPIConfig message.
                 * @param message Plain 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 K8sBetaAPIConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns K8sBetaAPIConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.K8sBetaAPIConfig;

                /**
                 * Creates a plain object from a K8sBetaAPIConfig message. Also converts values to other types if specified.
                 * @param message K8sBetaAPIConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.K8sBetaAPIConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this K8sBetaAPIConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for K8sBetaAPIConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a WorkloadConfig. */
            interface IWorkloadConfig {

                /** WorkloadConfig auditMode */
                auditMode?: (google.container.v1beta1.WorkloadConfig.Mode|keyof typeof google.container.v1beta1.WorkloadConfig.Mode|null);
            }

            /** Represents a WorkloadConfig. */
            class WorkloadConfig implements IWorkloadConfig {

                /**
                 * Constructs a new WorkloadConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IWorkloadConfig);

                /** WorkloadConfig auditMode. */
                public auditMode?: (google.container.v1beta1.WorkloadConfig.Mode|keyof typeof google.container.v1beta1.WorkloadConfig.Mode|null);

                /**
                 * Creates a new WorkloadConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns WorkloadConfig instance
                 */
                public static create(properties?: google.container.v1beta1.IWorkloadConfig): google.container.v1beta1.WorkloadConfig;

                /**
                 * Encodes the specified WorkloadConfig message. Does not implicitly {@link google.container.v1beta1.WorkloadConfig.verify|verify} messages.
                 * @param message WorkloadConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IWorkloadConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified WorkloadConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.WorkloadConfig.verify|verify} messages.
                 * @param message WorkloadConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IWorkloadConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a WorkloadConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns WorkloadConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.WorkloadConfig;

                /**
                 * Decodes a WorkloadConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns WorkloadConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.WorkloadConfig;

                /**
                 * Verifies a WorkloadConfig message.
                 * @param message Plain 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 WorkloadConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns WorkloadConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.WorkloadConfig;

                /**
                 * Creates a plain object from a WorkloadConfig message. Also converts values to other types if specified.
                 * @param message WorkloadConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.WorkloadConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this WorkloadConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for WorkloadConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace WorkloadConfig {

                /** Mode enum. */
                enum Mode {
                    MODE_UNSPECIFIED = 0,
                    DISABLED = 1,
                    BASIC = 4,
                    BASELINE = 2,
                    RESTRICTED = 3
                }
            }

            /** Properties of a ProtectConfig. */
            interface IProtectConfig {

                /** ProtectConfig workloadConfig */
                workloadConfig?: (google.container.v1beta1.IWorkloadConfig|null);

                /** ProtectConfig workloadVulnerabilityMode */
                workloadVulnerabilityMode?: (google.container.v1beta1.ProtectConfig.WorkloadVulnerabilityMode|keyof typeof google.container.v1beta1.ProtectConfig.WorkloadVulnerabilityMode|null);
            }

            /** Represents a ProtectConfig. */
            class ProtectConfig implements IProtectConfig {

                /**
                 * Constructs a new ProtectConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IProtectConfig);

                /** ProtectConfig workloadConfig. */
                public workloadConfig?: (google.container.v1beta1.IWorkloadConfig|null);

                /** ProtectConfig workloadVulnerabilityMode. */
                public workloadVulnerabilityMode?: (google.container.v1beta1.ProtectConfig.WorkloadVulnerabilityMode|keyof typeof google.container.v1beta1.ProtectConfig.WorkloadVulnerabilityMode|null);

                /**
                 * Creates a new ProtectConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ProtectConfig instance
                 */
                public static create(properties?: google.container.v1beta1.IProtectConfig): google.container.v1beta1.ProtectConfig;

                /**
                 * Encodes the specified ProtectConfig message. Does not implicitly {@link google.container.v1beta1.ProtectConfig.verify|verify} messages.
                 * @param message ProtectConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IProtectConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified ProtectConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.ProtectConfig.verify|verify} messages.
                 * @param message ProtectConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IProtectConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a ProtectConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ProtectConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.ProtectConfig;

                /**
                 * Decodes a ProtectConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ProtectConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.ProtectConfig;

                /**
                 * Verifies a ProtectConfig message.
                 * @param message Plain 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 ProtectConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ProtectConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.ProtectConfig;

                /**
                 * Creates a plain object from a ProtectConfig message. Also converts values to other types if specified.
                 * @param message ProtectConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.ProtectConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ProtectConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for ProtectConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace ProtectConfig {

                /** WorkloadVulnerabilityMode enum. */
                enum WorkloadVulnerabilityMode {
                    WORKLOAD_VULNERABILITY_MODE_UNSPECIFIED = 0,
                    DISABLED = 1,
                    BASIC = 2
                }
            }

            /** Properties of a SecurityPostureConfig. */
            interface ISecurityPostureConfig {

                /** SecurityPostureConfig mode */
                mode?: (google.container.v1beta1.SecurityPostureConfig.Mode|keyof typeof google.container.v1beta1.SecurityPostureConfig.Mode|null);

                /** SecurityPostureConfig vulnerabilityMode */
                vulnerabilityMode?: (google.container.v1beta1.SecurityPostureConfig.VulnerabilityMode|keyof typeof google.container.v1beta1.SecurityPostureConfig.VulnerabilityMode|null);
            }

            /** Represents a SecurityPostureConfig. */
            class SecurityPostureConfig implements ISecurityPostureConfig {

                /**
                 * Constructs a new SecurityPostureConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.ISecurityPostureConfig);

                /** SecurityPostureConfig mode. */
                public mode?: (google.container.v1beta1.SecurityPostureConfig.Mode|keyof typeof google.container.v1beta1.SecurityPostureConfig.Mode|null);

                /** SecurityPostureConfig vulnerabilityMode. */
                public vulnerabilityMode?: (google.container.v1beta1.SecurityPostureConfig.VulnerabilityMode|keyof typeof google.container.v1beta1.SecurityPostureConfig.VulnerabilityMode|null);

                /**
                 * Creates a new SecurityPostureConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns SecurityPostureConfig instance
                 */
                public static create(properties?: google.container.v1beta1.ISecurityPostureConfig): google.container.v1beta1.SecurityPostureConfig;

                /**
                 * Encodes the specified SecurityPostureConfig message. Does not implicitly {@link google.container.v1beta1.SecurityPostureConfig.verify|verify} messages.
                 * @param message SecurityPostureConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.ISecurityPostureConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified SecurityPostureConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.SecurityPostureConfig.verify|verify} messages.
                 * @param message SecurityPostureConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.ISecurityPostureConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a SecurityPostureConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns SecurityPostureConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.SecurityPostureConfig;

                /**
                 * Decodes a SecurityPostureConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns SecurityPostureConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.SecurityPostureConfig;

                /**
                 * Verifies a SecurityPostureConfig message.
                 * @param message Plain 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 SecurityPostureConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns SecurityPostureConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.SecurityPostureConfig;

                /**
                 * Creates a plain object from a SecurityPostureConfig message. Also converts values to other types if specified.
                 * @param message SecurityPostureConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.SecurityPostureConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this SecurityPostureConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for SecurityPostureConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace SecurityPostureConfig {

                /** Mode enum. */
                enum Mode {
                    MODE_UNSPECIFIED = 0,
                    DISABLED = 1,
                    BASIC = 2,
                    ENTERPRISE = 3
                }

                /** VulnerabilityMode enum. */
                enum VulnerabilityMode {
                    VULNERABILITY_MODE_UNSPECIFIED = 0,
                    VULNERABILITY_DISABLED = 1,
                    VULNERABILITY_BASIC = 2,
                    VULNERABILITY_ENTERPRISE = 3
                }
            }

            /** Properties of a NodePoolDefaults. */
            interface INodePoolDefaults {

                /** NodePoolDefaults nodeConfigDefaults */
                nodeConfigDefaults?: (google.container.v1beta1.INodeConfigDefaults|null);
            }

            /** Represents a NodePoolDefaults. */
            class NodePoolDefaults implements INodePoolDefaults {

                /**
                 * Constructs a new NodePoolDefaults.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.INodePoolDefaults);

                /** NodePoolDefaults nodeConfigDefaults. */
                public nodeConfigDefaults?: (google.container.v1beta1.INodeConfigDefaults|null);

                /**
                 * Creates a new NodePoolDefaults instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns NodePoolDefaults instance
                 */
                public static create(properties?: google.container.v1beta1.INodePoolDefaults): google.container.v1beta1.NodePoolDefaults;

                /**
                 * Encodes the specified NodePoolDefaults message. Does not implicitly {@link google.container.v1beta1.NodePoolDefaults.verify|verify} messages.
                 * @param message NodePoolDefaults message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.INodePoolDefaults, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified NodePoolDefaults message, length delimited. Does not implicitly {@link google.container.v1beta1.NodePoolDefaults.verify|verify} messages.
                 * @param message NodePoolDefaults message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.INodePoolDefaults, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a NodePoolDefaults message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns NodePoolDefaults
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.NodePoolDefaults;

                /**
                 * Decodes a NodePoolDefaults message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns NodePoolDefaults
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.NodePoolDefaults;

                /**
                 * Verifies a NodePoolDefaults message.
                 * @param message Plain 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 NodePoolDefaults message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns NodePoolDefaults
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.NodePoolDefaults;

                /**
                 * Creates a plain object from a NodePoolDefaults message. Also converts values to other types if specified.
                 * @param message NodePoolDefaults
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.NodePoolDefaults, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this NodePoolDefaults to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for NodePoolDefaults
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a NodeConfigDefaults. */
            interface INodeConfigDefaults {

                /** NodeConfigDefaults gcfsConfig */
                gcfsConfig?: (google.container.v1beta1.IGcfsConfig|null);

                /** NodeConfigDefaults loggingConfig */
                loggingConfig?: (google.container.v1beta1.INodePoolLoggingConfig|null);

                /** NodeConfigDefaults containerdConfig */
                containerdConfig?: (google.container.v1beta1.IContainerdConfig|null);

                /** NodeConfigDefaults hostMaintenancePolicy */
                hostMaintenancePolicy?: (google.container.v1beta1.IHostMaintenancePolicy|null);

                /** NodeConfigDefaults nodeKubeletConfig */
                nodeKubeletConfig?: (google.container.v1beta1.INodeKubeletConfig|null);
            }

            /** Represents a NodeConfigDefaults. */
            class NodeConfigDefaults implements INodeConfigDefaults {

                /**
                 * Constructs a new NodeConfigDefaults.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.INodeConfigDefaults);

                /** NodeConfigDefaults gcfsConfig. */
                public gcfsConfig?: (google.container.v1beta1.IGcfsConfig|null);

                /** NodeConfigDefaults loggingConfig. */
                public loggingConfig?: (google.container.v1beta1.INodePoolLoggingConfig|null);

                /** NodeConfigDefaults containerdConfig. */
                public containerdConfig?: (google.container.v1beta1.IContainerdConfig|null);

                /** NodeConfigDefaults hostMaintenancePolicy. */
                public hostMaintenancePolicy?: (google.container.v1beta1.IHostMaintenancePolicy|null);

                /** NodeConfigDefaults nodeKubeletConfig. */
                public nodeKubeletConfig?: (google.container.v1beta1.INodeKubeletConfig|null);

                /**
                 * Creates a new NodeConfigDefaults instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns NodeConfigDefaults instance
                 */
                public static create(properties?: google.container.v1beta1.INodeConfigDefaults): google.container.v1beta1.NodeConfigDefaults;

                /**
                 * Encodes the specified NodeConfigDefaults message. Does not implicitly {@link google.container.v1beta1.NodeConfigDefaults.verify|verify} messages.
                 * @param message NodeConfigDefaults message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.INodeConfigDefaults, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified NodeConfigDefaults message, length delimited. Does not implicitly {@link google.container.v1beta1.NodeConfigDefaults.verify|verify} messages.
                 * @param message NodeConfigDefaults message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.INodeConfigDefaults, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a NodeConfigDefaults message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns NodeConfigDefaults
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.NodeConfigDefaults;

                /**
                 * Decodes a NodeConfigDefaults message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns NodeConfigDefaults
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.NodeConfigDefaults;

                /**
                 * Verifies a NodeConfigDefaults message.
                 * @param message Plain 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 NodeConfigDefaults message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns NodeConfigDefaults
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.NodeConfigDefaults;

                /**
                 * Creates a plain object from a NodeConfigDefaults message. Also converts values to other types if specified.
                 * @param message NodeConfigDefaults
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.NodeConfigDefaults, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this NodeConfigDefaults to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for NodeConfigDefaults
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a NodePoolAutoConfig. */
            interface INodePoolAutoConfig {

                /** NodePoolAutoConfig networkTags */
                networkTags?: (google.container.v1beta1.INetworkTags|null);

                /** NodePoolAutoConfig resourceManagerTags */
                resourceManagerTags?: (google.container.v1beta1.IResourceManagerTags|null);

                /** NodePoolAutoConfig nodeKubeletConfig */
                nodeKubeletConfig?: (google.container.v1beta1.INodeKubeletConfig|null);

                /** NodePoolAutoConfig linuxNodeConfig */
                linuxNodeConfig?: (google.container.v1beta1.ILinuxNodeConfig|null);
            }

            /** Represents a NodePoolAutoConfig. */
            class NodePoolAutoConfig implements INodePoolAutoConfig {

                /**
                 * Constructs a new NodePoolAutoConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.INodePoolAutoConfig);

                /** NodePoolAutoConfig networkTags. */
                public networkTags?: (google.container.v1beta1.INetworkTags|null);

                /** NodePoolAutoConfig resourceManagerTags. */
                public resourceManagerTags?: (google.container.v1beta1.IResourceManagerTags|null);

                /** NodePoolAutoConfig nodeKubeletConfig. */
                public nodeKubeletConfig?: (google.container.v1beta1.INodeKubeletConfig|null);

                /** NodePoolAutoConfig linuxNodeConfig. */
                public linuxNodeConfig?: (google.container.v1beta1.ILinuxNodeConfig|null);

                /**
                 * Creates a new NodePoolAutoConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns NodePoolAutoConfig instance
                 */
                public static create(properties?: google.container.v1beta1.INodePoolAutoConfig): google.container.v1beta1.NodePoolAutoConfig;

                /**
                 * Encodes the specified NodePoolAutoConfig message. Does not implicitly {@link google.container.v1beta1.NodePoolAutoConfig.verify|verify} messages.
                 * @param message NodePoolAutoConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.INodePoolAutoConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified NodePoolAutoConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.NodePoolAutoConfig.verify|verify} messages.
                 * @param message NodePoolAutoConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.INodePoolAutoConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a NodePoolAutoConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns NodePoolAutoConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.NodePoolAutoConfig;

                /**
                 * Decodes a NodePoolAutoConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns NodePoolAutoConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.NodePoolAutoConfig;

                /**
                 * Verifies a NodePoolAutoConfig message.
                 * @param message Plain 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 NodePoolAutoConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns NodePoolAutoConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.NodePoolAutoConfig;

                /**
                 * Creates a plain object from a NodePoolAutoConfig message. Also converts values to other types if specified.
                 * @param message NodePoolAutoConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.NodePoolAutoConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this NodePoolAutoConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for NodePoolAutoConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a ClusterUpdate. */
            interface IClusterUpdate {

                /** ClusterUpdate desiredNodeVersion */
                desiredNodeVersion?: (string|null);

                /** ClusterUpdate desiredMonitoringService */
                desiredMonitoringService?: (string|null);

                /** ClusterUpdate desiredAddonsConfig */
                desiredAddonsConfig?: (google.container.v1beta1.IAddonsConfig|null);

                /** ClusterUpdate desiredNodePoolId */
                desiredNodePoolId?: (string|null);

                /** ClusterUpdate desiredImageType */
                desiredImageType?: (string|null);

                /** ClusterUpdate desiredNodePoolAutoscaling */
                desiredNodePoolAutoscaling?: (google.container.v1beta1.INodePoolAutoscaling|null);

                /** ClusterUpdate desiredLocations */
                desiredLocations?: (string[]|null);

                /** ClusterUpdate desiredMasterAuthorizedNetworksConfig */
                desiredMasterAuthorizedNetworksConfig?: (google.container.v1beta1.IMasterAuthorizedNetworksConfig|null);

                /** ClusterUpdate desiredPodSecurityPolicyConfig */
                desiredPodSecurityPolicyConfig?: (google.container.v1beta1.IPodSecurityPolicyConfig|null);

                /** ClusterUpdate desiredClusterAutoscaling */
                desiredClusterAutoscaling?: (google.container.v1beta1.IClusterAutoscaling|null);

                /** ClusterUpdate desiredBinaryAuthorization */
                desiredBinaryAuthorization?: (google.container.v1beta1.IBinaryAuthorization|null);

                /** ClusterUpdate desiredLoggingService */
                desiredLoggingService?: (string|null);

                /** ClusterUpdate desiredResourceUsageExportConfig */
                desiredResourceUsageExportConfig?: (google.container.v1beta1.IResourceUsageExportConfig|null);

                /** ClusterUpdate desiredVerticalPodAutoscaling */
                desiredVerticalPodAutoscaling?: (google.container.v1beta1.IVerticalPodAutoscaling|null);

                /** ClusterUpdate desiredPrivateClusterConfig */
                desiredPrivateClusterConfig?: (google.container.v1beta1.IPrivateClusterConfig|null);

                /** ClusterUpdate desiredIntraNodeVisibilityConfig */
                desiredIntraNodeVisibilityConfig?: (google.container.v1beta1.IIntraNodeVisibilityConfig|null);

                /** ClusterUpdate desiredDefaultSnatStatus */
                desiredDefaultSnatStatus?: (google.container.v1beta1.IDefaultSnatStatus|null);

                /** ClusterUpdate desiredClusterTelemetry */
                desiredClusterTelemetry?: (google.container.v1beta1.IClusterTelemetry|null);

                /** ClusterUpdate desiredReleaseChannel */
                desiredReleaseChannel?: (google.container.v1beta1.IReleaseChannel|null);

                /** ClusterUpdate privateClusterConfig */
                privateClusterConfig?: (google.container.v1beta1.IPrivateClusterConfig|null);

                /** ClusterUpdate desiredTpuConfig */
                desiredTpuConfig?: (google.container.v1beta1.ITpuConfig|null);

                /** ClusterUpdate desiredL4ilbSubsettingConfig */
                desiredL4ilbSubsettingConfig?: (google.container.v1beta1.IILBSubsettingConfig|null);

                /** ClusterUpdate desiredDatapathProvider */
                desiredDatapathProvider?: (google.container.v1beta1.DatapathProvider|keyof typeof google.container.v1beta1.DatapathProvider|null);

                /** ClusterUpdate desiredPrivateIpv6GoogleAccess */
                desiredPrivateIpv6GoogleAccess?: (google.container.v1beta1.PrivateIPv6GoogleAccess|keyof typeof google.container.v1beta1.PrivateIPv6GoogleAccess|null);

                /** ClusterUpdate desiredNotificationConfig */
                desiredNotificationConfig?: (google.container.v1beta1.INotificationConfig|null);

                /** ClusterUpdate desiredMasterVersion */
                desiredMasterVersion?: (string|null);

                /** ClusterUpdate desiredGcfsConfig */
                desiredGcfsConfig?: (google.container.v1beta1.IGcfsConfig|null);

                /** ClusterUpdate desiredDatabaseEncryption */
                desiredDatabaseEncryption?: (google.container.v1beta1.IDatabaseEncryption|null);

                /** ClusterUpdate desiredWorkloadIdentityConfig */
                desiredWorkloadIdentityConfig?: (google.container.v1beta1.IWorkloadIdentityConfig|null);

                /** ClusterUpdate desiredWorkloadCertificates */
                desiredWorkloadCertificates?: (google.container.v1beta1.IWorkloadCertificates|null);

                /** ClusterUpdate desiredMeshCertificates */
                desiredMeshCertificates?: (google.container.v1beta1.IMeshCertificates|null);

                /** ClusterUpdate desiredWorkloadAltsConfig */
                desiredWorkloadAltsConfig?: (google.container.v1beta1.IWorkloadALTSConfig|null);

                /** ClusterUpdate desiredShieldedNodes */
                desiredShieldedNodes?: (google.container.v1beta1.IShieldedNodes|null);

                /** ClusterUpdate desiredCostManagementConfig */
                desiredCostManagementConfig?: (google.container.v1beta1.ICostManagementConfig|null);

                /** ClusterUpdate desiredMaster */
                desiredMaster?: (google.container.v1beta1.IMaster|null);

                /** ClusterUpdate desiredDnsConfig */
                desiredDnsConfig?: (google.container.v1beta1.IDNSConfig|null);

                /** ClusterUpdate desiredServiceExternalIpsConfig */
                desiredServiceExternalIpsConfig?: (google.container.v1beta1.IServiceExternalIPsConfig|null);

                /** ClusterUpdate desiredAuthenticatorGroupsConfig */
                desiredAuthenticatorGroupsConfig?: (google.container.v1beta1.IAuthenticatorGroupsConfig|null);

                /** ClusterUpdate desiredLoggingConfig */
                desiredLoggingConfig?: (google.container.v1beta1.ILoggingConfig|null);

                /** ClusterUpdate desiredMonitoringConfig */
                desiredMonitoringConfig?: (google.container.v1beta1.IMonitoringConfig|null);

                /** ClusterUpdate desiredIdentityServiceConfig */
                desiredIdentityServiceConfig?: (google.container.v1beta1.IIdentityServiceConfig|null);

                /** ClusterUpdate desiredEnablePrivateEndpoint */
                desiredEnablePrivateEndpoint?: (boolean|null);

                /** ClusterUpdate desiredDefaultEnablePrivateNodes */
                desiredDefaultEnablePrivateNodes?: (boolean|null);

                /** ClusterUpdate desiredControlPlaneEndpointsConfig */
                desiredControlPlaneEndpointsConfig?: (google.container.v1beta1.IControlPlaneEndpointsConfig|null);

                /** ClusterUpdate desiredNodePoolAutoConfigNetworkTags */
                desiredNodePoolAutoConfigNetworkTags?: (google.container.v1beta1.INetworkTags|null);

                /** ClusterUpdate desiredProtectConfig */
                desiredProtectConfig?: (google.container.v1beta1.IProtectConfig|null);

                /** ClusterUpdate desiredPodAutoscaling */
                desiredPodAutoscaling?: (google.container.v1beta1.IPodAutoscaling|null);

                /** ClusterUpdate desiredGatewayApiConfig */
                desiredGatewayApiConfig?: (google.container.v1beta1.IGatewayAPIConfig|null);

                /** ClusterUpdate etag */
                etag?: (string|null);

                /** ClusterUpdate desiredNodePoolLoggingConfig */
                desiredNodePoolLoggingConfig?: (google.container.v1beta1.INodePoolLoggingConfig|null);

                /** ClusterUpdate desiredFleet */
                desiredFleet?: (google.container.v1beta1.IFleet|null);

                /** ClusterUpdate desiredStackType */
                desiredStackType?: (google.container.v1beta1.StackType|keyof typeof google.container.v1beta1.StackType|null);

                /** ClusterUpdate additionalPodRangesConfig */
                additionalPodRangesConfig?: (google.container.v1beta1.IAdditionalPodRangesConfig|null);

                /** ClusterUpdate removedAdditionalPodRangesConfig */
                removedAdditionalPodRangesConfig?: (google.container.v1beta1.IAdditionalPodRangesConfig|null);

                /** ClusterUpdate enableK8sBetaApis */
                enableK8sBetaApis?: (google.container.v1beta1.IK8sBetaAPIConfig|null);

                /** ClusterUpdate desiredSecurityPostureConfig */
                desiredSecurityPostureConfig?: (google.container.v1beta1.ISecurityPostureConfig|null);

                /** ClusterUpdate desiredNetworkPerformanceConfig */
                desiredNetworkPerformanceConfig?: (google.container.v1beta1.NetworkConfig.IClusterNetworkPerformanceConfig|null);

                /** ClusterUpdate desiredEnableFqdnNetworkPolicy */
                desiredEnableFqdnNetworkPolicy?: (boolean|null);

                /** ClusterUpdate desiredAutopilotWorkloadPolicyConfig */
                desiredAutopilotWorkloadPolicyConfig?: (google.container.v1beta1.IWorkloadPolicyConfig|null);

                /** ClusterUpdate desiredK8sBetaApis */
                desiredK8sBetaApis?: (google.container.v1beta1.IK8sBetaAPIConfig|null);

                /** ClusterUpdate desiredHostMaintenancePolicy */
                desiredHostMaintenancePolicy?: (google.container.v1beta1.IHostMaintenancePolicy|null);

                /** ClusterUpdate desiredContainerdConfig */
                desiredContainerdConfig?: (google.container.v1beta1.IContainerdConfig|null);

                /** ClusterUpdate desiredEnableMultiNetworking */
                desiredEnableMultiNetworking?: (boolean|null);

                /** ClusterUpdate desiredNodePoolAutoConfigResourceManagerTags */
                desiredNodePoolAutoConfigResourceManagerTags?: (google.container.v1beta1.IResourceManagerTags|null);

                /** ClusterUpdate desiredInTransitEncryptionConfig */
                desiredInTransitEncryptionConfig?: (google.container.v1beta1.InTransitEncryptionConfig|keyof typeof google.container.v1beta1.InTransitEncryptionConfig|null);

                /** ClusterUpdate desiredEnableCiliumClusterwideNetworkPolicy */
                desiredEnableCiliumClusterwideNetworkPolicy?: (boolean|null);

                /** ClusterUpdate desiredSecretManagerConfig */
                desiredSecretManagerConfig?: (google.container.v1beta1.ISecretManagerConfig|null);

                /** ClusterUpdate desiredCompliancePostureConfig */
                desiredCompliancePostureConfig?: (google.container.v1beta1.ICompliancePostureConfig|null);

                /** ClusterUpdate desiredNodeKubeletConfig */
                desiredNodeKubeletConfig?: (google.container.v1beta1.INodeKubeletConfig|null);

                /** ClusterUpdate desiredNodePoolAutoConfigKubeletConfig */
                desiredNodePoolAutoConfigKubeletConfig?: (google.container.v1beta1.INodeKubeletConfig|null);

                /** ClusterUpdate userManagedKeysConfig */
                userManagedKeysConfig?: (google.container.v1beta1.IUserManagedKeysConfig|null);

                /** ClusterUpdate desiredRbacBindingConfig */
                desiredRbacBindingConfig?: (google.container.v1beta1.IRBACBindingConfig|null);

                /** ClusterUpdate desiredAdditionalIpRangesConfig */
                desiredAdditionalIpRangesConfig?: (google.container.v1beta1.IDesiredAdditionalIPRangesConfig|null);

                /** ClusterUpdate desiredEnterpriseConfig */
                desiredEnterpriseConfig?: (google.container.v1beta1.IDesiredEnterpriseConfig|null);

                /** ClusterUpdate desiredAutoIpamConfig */
                desiredAutoIpamConfig?: (google.container.v1beta1.IAutoIpamConfig|null);

                /** ClusterUpdate desiredDisableL4LbFirewallReconciliation */
                desiredDisableL4LbFirewallReconciliation?: (boolean|null);

                /** ClusterUpdate desiredNodePoolAutoConfigLinuxNodeConfig */
                desiredNodePoolAutoConfigLinuxNodeConfig?: (google.container.v1beta1.ILinuxNodeConfig|null);

                /** ClusterUpdate desiredUserManagedKeysConfig */
                desiredUserManagedKeysConfig?: (google.container.v1beta1.IUserManagedKeysConfig|null);

                /** ClusterUpdate desiredAnonymousAuthenticationConfig */
                desiredAnonymousAuthenticationConfig?: (google.container.v1beta1.IAnonymousAuthenticationConfig|null);

                /** ClusterUpdate gkeAutoUpgradeConfig */
                gkeAutoUpgradeConfig?: (google.container.v1beta1.IGkeAutoUpgradeConfig|null);

                /** ClusterUpdate desiredNetworkTierConfig */
                desiredNetworkTierConfig?: (google.container.v1beta1.INetworkTierConfig|null);

                /** ClusterUpdate desiredScheduleUpgradeConfig */
                desiredScheduleUpgradeConfig?: (google.container.v1beta1.IScheduleUpgradeConfig|null);

                /** ClusterUpdate desiredSecretSyncConfig */
                desiredSecretSyncConfig?: (google.container.v1beta1.ISecretSyncConfig|null);

                /** ClusterUpdate desiredPrivilegedAdmissionConfig */
                desiredPrivilegedAdmissionConfig?: (google.container.v1beta1.IPrivilegedAdmissionConfig|null);

                /** ClusterUpdate desiredControlPlaneEgress */
                desiredControlPlaneEgress?: (google.container.v1beta1.IControlPlaneEgress|null);

                /** ClusterUpdate desiredRollbackSafeUpgrade */
                desiredRollbackSafeUpgrade?: (google.container.v1beta1.IRollbackSafeUpgrade|null);

                /** ClusterUpdate desiredNodePoolUpgradeConcurrencyConfig */
                desiredNodePoolUpgradeConcurrencyConfig?: (google.container.v1beta1.INodePoolUpgradeConcurrencyConfig|null);

                /** ClusterUpdate desiredManagedOpentelemetryConfig */
                desiredManagedOpentelemetryConfig?: (google.container.v1beta1.IManagedOpenTelemetryConfig|null);

                /** ClusterUpdate desiredAutopilotClusterPolicyConfig */
                desiredAutopilotClusterPolicyConfig?: (google.container.v1beta1.IClusterPolicyConfig|null);

                /** ClusterUpdate desiredManagedMachineLearningDiagnosticsConfig */
                desiredManagedMachineLearningDiagnosticsConfig?: (google.container.v1beta1.IManagedMachineLearningDiagnosticsConfig|null);

                /** ClusterUpdate desiredNodeCreationConfig */
                desiredNodeCreationConfig?: (google.container.v1beta1.INodeCreationConfig|null);
            }

            /** Represents a ClusterUpdate. */
            class ClusterUpdate implements IClusterUpdate {

                /**
                 * Constructs a new ClusterUpdate.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IClusterUpdate);

                /** ClusterUpdate desiredNodeVersion. */
                public desiredNodeVersion: string;

                /** ClusterUpdate desiredMonitoringService. */
                public desiredMonitoringService: string;

                /** ClusterUpdate desiredAddonsConfig. */
                public desiredAddonsConfig?: (google.container.v1beta1.IAddonsConfig|null);

                /** ClusterUpdate desiredNodePoolId. */
                public desiredNodePoolId: string;

                /** ClusterUpdate desiredImageType. */
                public desiredImageType: string;

                /** ClusterUpdate desiredNodePoolAutoscaling. */
                public desiredNodePoolAutoscaling?: (google.container.v1beta1.INodePoolAutoscaling|null);

                /** ClusterUpdate desiredLocations. */
                public desiredLocations: string[];

                /** ClusterUpdate desiredMasterAuthorizedNetworksConfig. */
                public desiredMasterAuthorizedNetworksConfig?: (google.container.v1beta1.IMasterAuthorizedNetworksConfig|null);

                /** ClusterUpdate desiredPodSecurityPolicyConfig. */
                public desiredPodSecurityPolicyConfig?: (google.container.v1beta1.IPodSecurityPolicyConfig|null);

                /** ClusterUpdate desiredClusterAutoscaling. */
                public desiredClusterAutoscaling?: (google.container.v1beta1.IClusterAutoscaling|null);

                /** ClusterUpdate desiredBinaryAuthorization. */
                public desiredBinaryAuthorization?: (google.container.v1beta1.IBinaryAuthorization|null);

                /** ClusterUpdate desiredLoggingService. */
                public desiredLoggingService: string;

                /** ClusterUpdate desiredResourceUsageExportConfig. */
                public desiredResourceUsageExportConfig?: (google.container.v1beta1.IResourceUsageExportConfig|null);

                /** ClusterUpdate desiredVerticalPodAutoscaling. */
                public desiredVerticalPodAutoscaling?: (google.container.v1beta1.IVerticalPodAutoscaling|null);

                /** ClusterUpdate desiredPrivateClusterConfig. */
                public desiredPrivateClusterConfig?: (google.container.v1beta1.IPrivateClusterConfig|null);

                /** ClusterUpdate desiredIntraNodeVisibilityConfig. */
                public desiredIntraNodeVisibilityConfig?: (google.container.v1beta1.IIntraNodeVisibilityConfig|null);

                /** ClusterUpdate desiredDefaultSnatStatus. */
                public desiredDefaultSnatStatus?: (google.container.v1beta1.IDefaultSnatStatus|null);

                /** ClusterUpdate desiredClusterTelemetry. */
                public desiredClusterTelemetry?: (google.container.v1beta1.IClusterTelemetry|null);

                /** ClusterUpdate desiredReleaseChannel. */
                public desiredReleaseChannel?: (google.container.v1beta1.IReleaseChannel|null);

                /** ClusterUpdate privateClusterConfig. */
                public privateClusterConfig?: (google.container.v1beta1.IPrivateClusterConfig|null);

                /** ClusterUpdate desiredTpuConfig. */
                public desiredTpuConfig?: (google.container.v1beta1.ITpuConfig|null);

                /** ClusterUpdate desiredL4ilbSubsettingConfig. */
                public desiredL4ilbSubsettingConfig?: (google.container.v1beta1.IILBSubsettingConfig|null);

                /** ClusterUpdate desiredDatapathProvider. */
                public desiredDatapathProvider: (google.container.v1beta1.DatapathProvider|keyof typeof google.container.v1beta1.DatapathProvider);

                /** ClusterUpdate desiredPrivateIpv6GoogleAccess. */
                public desiredPrivateIpv6GoogleAccess: (google.container.v1beta1.PrivateIPv6GoogleAccess|keyof typeof google.container.v1beta1.PrivateIPv6GoogleAccess);

                /** ClusterUpdate desiredNotificationConfig. */
                public desiredNotificationConfig?: (google.container.v1beta1.INotificationConfig|null);

                /** ClusterUpdate desiredMasterVersion. */
                public desiredMasterVersion: string;

                /** ClusterUpdate desiredGcfsConfig. */
                public desiredGcfsConfig?: (google.container.v1beta1.IGcfsConfig|null);

                /** ClusterUpdate desiredDatabaseEncryption. */
                public desiredDatabaseEncryption?: (google.container.v1beta1.IDatabaseEncryption|null);

                /** ClusterUpdate desiredWorkloadIdentityConfig. */
                public desiredWorkloadIdentityConfig?: (google.container.v1beta1.IWorkloadIdentityConfig|null);

                /** ClusterUpdate desiredWorkloadCertificates. */
                public desiredWorkloadCertificates?: (google.container.v1beta1.IWorkloadCertificates|null);

                /** ClusterUpdate desiredMeshCertificates. */
                public desiredMeshCertificates?: (google.container.v1beta1.IMeshCertificates|null);

                /** ClusterUpdate desiredWorkloadAltsConfig. */
                public desiredWorkloadAltsConfig?: (google.container.v1beta1.IWorkloadALTSConfig|null);

                /** ClusterUpdate desiredShieldedNodes. */
                public desiredShieldedNodes?: (google.container.v1beta1.IShieldedNodes|null);

                /** ClusterUpdate desiredCostManagementConfig. */
                public desiredCostManagementConfig?: (google.container.v1beta1.ICostManagementConfig|null);

                /** ClusterUpdate desiredMaster. */
                public desiredMaster?: (google.container.v1beta1.IMaster|null);

                /** ClusterUpdate desiredDnsConfig. */
                public desiredDnsConfig?: (google.container.v1beta1.IDNSConfig|null);

                /** ClusterUpdate desiredServiceExternalIpsConfig. */
                public desiredServiceExternalIpsConfig?: (google.container.v1beta1.IServiceExternalIPsConfig|null);

                /** ClusterUpdate desiredAuthenticatorGroupsConfig. */
                public desiredAuthenticatorGroupsConfig?: (google.container.v1beta1.IAuthenticatorGroupsConfig|null);

                /** ClusterUpdate desiredLoggingConfig. */
                public desiredLoggingConfig?: (google.container.v1beta1.ILoggingConfig|null);

                /** ClusterUpdate desiredMonitoringConfig. */
                public desiredMonitoringConfig?: (google.container.v1beta1.IMonitoringConfig|null);

                /** ClusterUpdate desiredIdentityServiceConfig. */
                public desiredIdentityServiceConfig?: (google.container.v1beta1.IIdentityServiceConfig|null);

                /** ClusterUpdate desiredEnablePrivateEndpoint. */
                public desiredEnablePrivateEndpoint?: (boolean|null);

                /** ClusterUpdate desiredDefaultEnablePrivateNodes. */
                public desiredDefaultEnablePrivateNodes?: (boolean|null);

                /** ClusterUpdate desiredControlPlaneEndpointsConfig. */
                public desiredControlPlaneEndpointsConfig?: (google.container.v1beta1.IControlPlaneEndpointsConfig|null);

                /** ClusterUpdate desiredNodePoolAutoConfigNetworkTags. */
                public desiredNodePoolAutoConfigNetworkTags?: (google.container.v1beta1.INetworkTags|null);

                /** ClusterUpdate desiredProtectConfig. */
                public desiredProtectConfig?: (google.container.v1beta1.IProtectConfig|null);

                /** ClusterUpdate desiredPodAutoscaling. */
                public desiredPodAutoscaling?: (google.container.v1beta1.IPodAutoscaling|null);

                /** ClusterUpdate desiredGatewayApiConfig. */
                public desiredGatewayApiConfig?: (google.container.v1beta1.IGatewayAPIConfig|null);

                /** ClusterUpdate etag. */
                public etag: string;

                /** ClusterUpdate desiredNodePoolLoggingConfig. */
                public desiredNodePoolLoggingConfig?: (google.container.v1beta1.INodePoolLoggingConfig|null);

                /** ClusterUpdate desiredFleet. */
                public desiredFleet?: (google.container.v1beta1.IFleet|null);

                /** ClusterUpdate desiredStackType. */
                public desiredStackType: (google.container.v1beta1.StackType|keyof typeof google.container.v1beta1.StackType);

                /** ClusterUpdate additionalPodRangesConfig. */
                public additionalPodRangesConfig?: (google.container.v1beta1.IAdditionalPodRangesConfig|null);

                /** ClusterUpdate removedAdditionalPodRangesConfig. */
                public removedAdditionalPodRangesConfig?: (google.container.v1beta1.IAdditionalPodRangesConfig|null);

                /** ClusterUpdate enableK8sBetaApis. */
                public enableK8sBetaApis?: (google.container.v1beta1.IK8sBetaAPIConfig|null);

                /** ClusterUpdate desiredSecurityPostureConfig. */
                public desiredSecurityPostureConfig?: (google.container.v1beta1.ISecurityPostureConfig|null);

                /** ClusterUpdate desiredNetworkPerformanceConfig. */
                public desiredNetworkPerformanceConfig?: (google.container.v1beta1.NetworkConfig.IClusterNetworkPerformanceConfig|null);

                /** ClusterUpdate desiredEnableFqdnNetworkPolicy. */
                public desiredEnableFqdnNetworkPolicy?: (boolean|null);

                /** ClusterUpdate desiredAutopilotWorkloadPolicyConfig. */
                public desiredAutopilotWorkloadPolicyConfig?: (google.container.v1beta1.IWorkloadPolicyConfig|null);

                /** ClusterUpdate desiredK8sBetaApis. */
                public desiredK8sBetaApis?: (google.container.v1beta1.IK8sBetaAPIConfig|null);

                /** ClusterUpdate desiredHostMaintenancePolicy. */
                public desiredHostMaintenancePolicy?: (google.container.v1beta1.IHostMaintenancePolicy|null);

                /** ClusterUpdate desiredContainerdConfig. */
                public desiredContainerdConfig?: (google.container.v1beta1.IContainerdConfig|null);

                /** ClusterUpdate desiredEnableMultiNetworking. */
                public desiredEnableMultiNetworking?: (boolean|null);

                /** ClusterUpdate desiredNodePoolAutoConfigResourceManagerTags. */
                public desiredNodePoolAutoConfigResourceManagerTags?: (google.container.v1beta1.IResourceManagerTags|null);

                /** ClusterUpdate desiredInTransitEncryptionConfig. */
                public desiredInTransitEncryptionConfig?: (google.container.v1beta1.InTransitEncryptionConfig|keyof typeof google.container.v1beta1.InTransitEncryptionConfig|null);

                /** ClusterUpdate desiredEnableCiliumClusterwideNetworkPolicy. */
                public desiredEnableCiliumClusterwideNetworkPolicy?: (boolean|null);

                /** ClusterUpdate desiredSecretManagerConfig. */
                public desiredSecretManagerConfig?: (google.container.v1beta1.ISecretManagerConfig|null);

                /** ClusterUpdate desiredCompliancePostureConfig. */
                public desiredCompliancePostureConfig?: (google.container.v1beta1.ICompliancePostureConfig|null);

                /** ClusterUpdate desiredNodeKubeletConfig. */
                public desiredNodeKubeletConfig?: (google.container.v1beta1.INodeKubeletConfig|null);

                /** ClusterUpdate desiredNodePoolAutoConfigKubeletConfig. */
                public desiredNodePoolAutoConfigKubeletConfig?: (google.container.v1beta1.INodeKubeletConfig|null);

                /** ClusterUpdate userManagedKeysConfig. */
                public userManagedKeysConfig?: (google.container.v1beta1.IUserManagedKeysConfig|null);

                /** ClusterUpdate desiredRbacBindingConfig. */
                public desiredRbacBindingConfig?: (google.container.v1beta1.IRBACBindingConfig|null);

                /** ClusterUpdate desiredAdditionalIpRangesConfig. */
                public desiredAdditionalIpRangesConfig?: (google.container.v1beta1.IDesiredAdditionalIPRangesConfig|null);

                /** ClusterUpdate desiredEnterpriseConfig. */
                public desiredEnterpriseConfig?: (google.container.v1beta1.IDesiredEnterpriseConfig|null);

                /** ClusterUpdate desiredAutoIpamConfig. */
                public desiredAutoIpamConfig?: (google.container.v1beta1.IAutoIpamConfig|null);

                /** ClusterUpdate desiredDisableL4LbFirewallReconciliation. */
                public desiredDisableL4LbFirewallReconciliation?: (boolean|null);

                /** ClusterUpdate desiredNodePoolAutoConfigLinuxNodeConfig. */
                public desiredNodePoolAutoConfigLinuxNodeConfig?: (google.container.v1beta1.ILinuxNodeConfig|null);

                /** ClusterUpdate desiredUserManagedKeysConfig. */
                public desiredUserManagedKeysConfig?: (google.container.v1beta1.IUserManagedKeysConfig|null);

                /** ClusterUpdate desiredAnonymousAuthenticationConfig. */
                public desiredAnonymousAuthenticationConfig?: (google.container.v1beta1.IAnonymousAuthenticationConfig|null);

                /** ClusterUpdate gkeAutoUpgradeConfig. */
                public gkeAutoUpgradeConfig?: (google.container.v1beta1.IGkeAutoUpgradeConfig|null);

                /** ClusterUpdate desiredNetworkTierConfig. */
                public desiredNetworkTierConfig?: (google.container.v1beta1.INetworkTierConfig|null);

                /** ClusterUpdate desiredScheduleUpgradeConfig. */
                public desiredScheduleUpgradeConfig?: (google.container.v1beta1.IScheduleUpgradeConfig|null);

                /** ClusterUpdate desiredSecretSyncConfig. */
                public desiredSecretSyncConfig?: (google.container.v1beta1.ISecretSyncConfig|null);

                /** ClusterUpdate desiredPrivilegedAdmissionConfig. */
                public desiredPrivilegedAdmissionConfig?: (google.container.v1beta1.IPrivilegedAdmissionConfig|null);

                /** ClusterUpdate desiredControlPlaneEgress. */
                public desiredControlPlaneEgress?: (google.container.v1beta1.IControlPlaneEgress|null);

                /** ClusterUpdate desiredRollbackSafeUpgrade. */
                public desiredRollbackSafeUpgrade?: (google.container.v1beta1.IRollbackSafeUpgrade|null);

                /** ClusterUpdate desiredNodePoolUpgradeConcurrencyConfig. */
                public desiredNodePoolUpgradeConcurrencyConfig?: (google.container.v1beta1.INodePoolUpgradeConcurrencyConfig|null);

                /** ClusterUpdate desiredManagedOpentelemetryConfig. */
                public desiredManagedOpentelemetryConfig?: (google.container.v1beta1.IManagedOpenTelemetryConfig|null);

                /** ClusterUpdate desiredAutopilotClusterPolicyConfig. */
                public desiredAutopilotClusterPolicyConfig?: (google.container.v1beta1.IClusterPolicyConfig|null);

                /** ClusterUpdate desiredManagedMachineLearningDiagnosticsConfig. */
                public desiredManagedMachineLearningDiagnosticsConfig?: (google.container.v1beta1.IManagedMachineLearningDiagnosticsConfig|null);

                /** ClusterUpdate desiredNodeCreationConfig. */
                public desiredNodeCreationConfig?: (google.container.v1beta1.INodeCreationConfig|null);

                /**
                 * Creates a new ClusterUpdate instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ClusterUpdate instance
                 */
                public static create(properties?: google.container.v1beta1.IClusterUpdate): google.container.v1beta1.ClusterUpdate;

                /**
                 * Encodes the specified ClusterUpdate message. Does not implicitly {@link google.container.v1beta1.ClusterUpdate.verify|verify} messages.
                 * @param message ClusterUpdate message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IClusterUpdate, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified ClusterUpdate message, length delimited. Does not implicitly {@link google.container.v1beta1.ClusterUpdate.verify|verify} messages.
                 * @param message ClusterUpdate message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IClusterUpdate, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a ClusterUpdate message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ClusterUpdate
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.ClusterUpdate;

                /**
                 * Decodes a ClusterUpdate message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ClusterUpdate
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.ClusterUpdate;

                /**
                 * Verifies a ClusterUpdate message.
                 * @param message Plain 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 ClusterUpdate message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ClusterUpdate
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.ClusterUpdate;

                /**
                 * Creates a plain object from a ClusterUpdate message. Also converts values to other types if specified.
                 * @param message ClusterUpdate
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.ClusterUpdate, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ClusterUpdate to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for ClusterUpdate
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of an AdditionalPodRangesConfig. */
            interface IAdditionalPodRangesConfig {

                /** AdditionalPodRangesConfig podRangeNames */
                podRangeNames?: (string[]|null);

                /** AdditionalPodRangesConfig podRangeInfo */
                podRangeInfo?: (google.container.v1beta1.IRangeInfo[]|null);
            }

            /** Represents an AdditionalPodRangesConfig. */
            class AdditionalPodRangesConfig implements IAdditionalPodRangesConfig {

                /**
                 * Constructs a new AdditionalPodRangesConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IAdditionalPodRangesConfig);

                /** AdditionalPodRangesConfig podRangeNames. */
                public podRangeNames: string[];

                /** AdditionalPodRangesConfig podRangeInfo. */
                public podRangeInfo: google.container.v1beta1.IRangeInfo[];

                /**
                 * Creates a new AdditionalPodRangesConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns AdditionalPodRangesConfig instance
                 */
                public static create(properties?: google.container.v1beta1.IAdditionalPodRangesConfig): google.container.v1beta1.AdditionalPodRangesConfig;

                /**
                 * Encodes the specified AdditionalPodRangesConfig message. Does not implicitly {@link google.container.v1beta1.AdditionalPodRangesConfig.verify|verify} messages.
                 * @param message AdditionalPodRangesConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IAdditionalPodRangesConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified AdditionalPodRangesConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.AdditionalPodRangesConfig.verify|verify} messages.
                 * @param message AdditionalPodRangesConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IAdditionalPodRangesConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes an AdditionalPodRangesConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns AdditionalPodRangesConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.AdditionalPodRangesConfig;

                /**
                 * Decodes an AdditionalPodRangesConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns AdditionalPodRangesConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.AdditionalPodRangesConfig;

                /**
                 * Verifies an AdditionalPodRangesConfig message.
                 * @param message Plain 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 AdditionalPodRangesConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns AdditionalPodRangesConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.AdditionalPodRangesConfig;

                /**
                 * Creates a plain object from an AdditionalPodRangesConfig message. Also converts values to other types if specified.
                 * @param message AdditionalPodRangesConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.AdditionalPodRangesConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this AdditionalPodRangesConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for AdditionalPodRangesConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of an AdditionalIPRangesConfig. */
            interface IAdditionalIPRangesConfig {

                /** AdditionalIPRangesConfig subnetwork */
                subnetwork?: (string|null);

                /** AdditionalIPRangesConfig podIpv4RangeNames */
                podIpv4RangeNames?: (string[]|null);

                /** AdditionalIPRangesConfig status */
                status?: (google.container.v1beta1.AdditionalIPRangesConfig.Status|keyof typeof google.container.v1beta1.AdditionalIPRangesConfig.Status|null);
            }

            /** Represents an AdditionalIPRangesConfig. */
            class AdditionalIPRangesConfig implements IAdditionalIPRangesConfig {

                /**
                 * Constructs a new AdditionalIPRangesConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IAdditionalIPRangesConfig);

                /** AdditionalIPRangesConfig subnetwork. */
                public subnetwork: string;

                /** AdditionalIPRangesConfig podIpv4RangeNames. */
                public podIpv4RangeNames: string[];

                /** AdditionalIPRangesConfig status. */
                public status: (google.container.v1beta1.AdditionalIPRangesConfig.Status|keyof typeof google.container.v1beta1.AdditionalIPRangesConfig.Status);

                /**
                 * Creates a new AdditionalIPRangesConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns AdditionalIPRangesConfig instance
                 */
                public static create(properties?: google.container.v1beta1.IAdditionalIPRangesConfig): google.container.v1beta1.AdditionalIPRangesConfig;

                /**
                 * Encodes the specified AdditionalIPRangesConfig message. Does not implicitly {@link google.container.v1beta1.AdditionalIPRangesConfig.verify|verify} messages.
                 * @param message AdditionalIPRangesConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IAdditionalIPRangesConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified AdditionalIPRangesConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.AdditionalIPRangesConfig.verify|verify} messages.
                 * @param message AdditionalIPRangesConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IAdditionalIPRangesConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes an AdditionalIPRangesConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns AdditionalIPRangesConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.AdditionalIPRangesConfig;

                /**
                 * Decodes an AdditionalIPRangesConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns AdditionalIPRangesConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.AdditionalIPRangesConfig;

                /**
                 * Verifies an AdditionalIPRangesConfig message.
                 * @param message Plain 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 AdditionalIPRangesConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns AdditionalIPRangesConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.AdditionalIPRangesConfig;

                /**
                 * Creates a plain object from an AdditionalIPRangesConfig message. Also converts values to other types if specified.
                 * @param message AdditionalIPRangesConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.AdditionalIPRangesConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this AdditionalIPRangesConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for AdditionalIPRangesConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace AdditionalIPRangesConfig {

                /** Status enum. */
                enum Status {
                    STATUS_UNSPECIFIED = 0,
                    ACTIVE = 1,
                    DRAINING = 2
                }
            }

            /** Properties of a DesiredAdditionalIPRangesConfig. */
            interface IDesiredAdditionalIPRangesConfig {

                /** DesiredAdditionalIPRangesConfig additionalIpRangesConfigs */
                additionalIpRangesConfigs?: (google.container.v1beta1.IAdditionalIPRangesConfig[]|null);
            }

            /** Represents a DesiredAdditionalIPRangesConfig. */
            class DesiredAdditionalIPRangesConfig implements IDesiredAdditionalIPRangesConfig {

                /**
                 * Constructs a new DesiredAdditionalIPRangesConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IDesiredAdditionalIPRangesConfig);

                /** DesiredAdditionalIPRangesConfig additionalIpRangesConfigs. */
                public additionalIpRangesConfigs: google.container.v1beta1.IAdditionalIPRangesConfig[];

                /**
                 * Creates a new DesiredAdditionalIPRangesConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns DesiredAdditionalIPRangesConfig instance
                 */
                public static create(properties?: google.container.v1beta1.IDesiredAdditionalIPRangesConfig): google.container.v1beta1.DesiredAdditionalIPRangesConfig;

                /**
                 * Encodes the specified DesiredAdditionalIPRangesConfig message. Does not implicitly {@link google.container.v1beta1.DesiredAdditionalIPRangesConfig.verify|verify} messages.
                 * @param message DesiredAdditionalIPRangesConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IDesiredAdditionalIPRangesConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified DesiredAdditionalIPRangesConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.DesiredAdditionalIPRangesConfig.verify|verify} messages.
                 * @param message DesiredAdditionalIPRangesConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IDesiredAdditionalIPRangesConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a DesiredAdditionalIPRangesConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns DesiredAdditionalIPRangesConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.DesiredAdditionalIPRangesConfig;

                /**
                 * Decodes a DesiredAdditionalIPRangesConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns DesiredAdditionalIPRangesConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.DesiredAdditionalIPRangesConfig;

                /**
                 * Verifies a DesiredAdditionalIPRangesConfig message.
                 * @param message Plain 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 DesiredAdditionalIPRangesConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns DesiredAdditionalIPRangesConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.DesiredAdditionalIPRangesConfig;

                /**
                 * Creates a plain object from a DesiredAdditionalIPRangesConfig message. Also converts values to other types if specified.
                 * @param message DesiredAdditionalIPRangesConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.DesiredAdditionalIPRangesConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this DesiredAdditionalIPRangesConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for DesiredAdditionalIPRangesConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of an AutoIpamConfig. */
            interface IAutoIpamConfig {

                /** AutoIpamConfig enabled */
                enabled?: (boolean|null);
            }

            /** Represents an AutoIpamConfig. */
            class AutoIpamConfig implements IAutoIpamConfig {

                /**
                 * Constructs a new AutoIpamConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IAutoIpamConfig);

                /** AutoIpamConfig enabled. */
                public enabled?: (boolean|null);

                /**
                 * Creates a new AutoIpamConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns AutoIpamConfig instance
                 */
                public static create(properties?: google.container.v1beta1.IAutoIpamConfig): google.container.v1beta1.AutoIpamConfig;

                /**
                 * Encodes the specified AutoIpamConfig message. Does not implicitly {@link google.container.v1beta1.AutoIpamConfig.verify|verify} messages.
                 * @param message AutoIpamConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IAutoIpamConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified AutoIpamConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.AutoIpamConfig.verify|verify} messages.
                 * @param message AutoIpamConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IAutoIpamConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes an AutoIpamConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns AutoIpamConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.AutoIpamConfig;

                /**
                 * Decodes an AutoIpamConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns AutoIpamConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.AutoIpamConfig;

                /**
                 * Verifies an AutoIpamConfig message.
                 * @param message Plain 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 AutoIpamConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns AutoIpamConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.AutoIpamConfig;

                /**
                 * Creates a plain object from an AutoIpamConfig message. Also converts values to other types if specified.
                 * @param message AutoIpamConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.AutoIpamConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this AutoIpamConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for AutoIpamConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a RangeInfo. */
            interface IRangeInfo {

                /** RangeInfo rangeName */
                rangeName?: (string|null);

                /** RangeInfo utilization */
                utilization?: (number|null);
            }

            /** Represents a RangeInfo. */
            class RangeInfo implements IRangeInfo {

                /**
                 * Constructs a new RangeInfo.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IRangeInfo);

                /** RangeInfo rangeName. */
                public rangeName: string;

                /** RangeInfo utilization. */
                public utilization: number;

                /**
                 * Creates a new RangeInfo instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns RangeInfo instance
                 */
                public static create(properties?: google.container.v1beta1.IRangeInfo): google.container.v1beta1.RangeInfo;

                /**
                 * Encodes the specified RangeInfo message. Does not implicitly {@link google.container.v1beta1.RangeInfo.verify|verify} messages.
                 * @param message RangeInfo message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IRangeInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified RangeInfo message, length delimited. Does not implicitly {@link google.container.v1beta1.RangeInfo.verify|verify} messages.
                 * @param message RangeInfo message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IRangeInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a RangeInfo message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns RangeInfo
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.RangeInfo;

                /**
                 * Decodes a RangeInfo message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns RangeInfo
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.RangeInfo;

                /**
                 * Verifies a RangeInfo message.
                 * @param message Plain 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 RangeInfo message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns RangeInfo
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.RangeInfo;

                /**
                 * Creates a plain object from a RangeInfo message. Also converts values to other types if specified.
                 * @param message RangeInfo
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.RangeInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this RangeInfo to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for RangeInfo
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a DesiredEnterpriseConfig. */
            interface IDesiredEnterpriseConfig {

                /** DesiredEnterpriseConfig desiredTier */
                desiredTier?: (google.container.v1beta1.EnterpriseConfig.ClusterTier|keyof typeof google.container.v1beta1.EnterpriseConfig.ClusterTier|null);
            }

            /** Represents a DesiredEnterpriseConfig. */
            class DesiredEnterpriseConfig implements IDesiredEnterpriseConfig {

                /**
                 * Constructs a new DesiredEnterpriseConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IDesiredEnterpriseConfig);

                /** DesiredEnterpriseConfig desiredTier. */
                public desiredTier: (google.container.v1beta1.EnterpriseConfig.ClusterTier|keyof typeof google.container.v1beta1.EnterpriseConfig.ClusterTier);

                /**
                 * Creates a new DesiredEnterpriseConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns DesiredEnterpriseConfig instance
                 */
                public static create(properties?: google.container.v1beta1.IDesiredEnterpriseConfig): google.container.v1beta1.DesiredEnterpriseConfig;

                /**
                 * Encodes the specified DesiredEnterpriseConfig message. Does not implicitly {@link google.container.v1beta1.DesiredEnterpriseConfig.verify|verify} messages.
                 * @param message DesiredEnterpriseConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IDesiredEnterpriseConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified DesiredEnterpriseConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.DesiredEnterpriseConfig.verify|verify} messages.
                 * @param message DesiredEnterpriseConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IDesiredEnterpriseConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a DesiredEnterpriseConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns DesiredEnterpriseConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.DesiredEnterpriseConfig;

                /**
                 * Decodes a DesiredEnterpriseConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns DesiredEnterpriseConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.DesiredEnterpriseConfig;

                /**
                 * Verifies a DesiredEnterpriseConfig message.
                 * @param message Plain 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 DesiredEnterpriseConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns DesiredEnterpriseConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.DesiredEnterpriseConfig;

                /**
                 * Creates a plain object from a DesiredEnterpriseConfig message. Also converts values to other types if specified.
                 * @param message DesiredEnterpriseConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.DesiredEnterpriseConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this DesiredEnterpriseConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for DesiredEnterpriseConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of an Operation. */
            interface IOperation {

                /** Operation name */
                name?: (string|null);

                /** Operation zone */
                zone?: (string|null);

                /** Operation operationType */
                operationType?: (google.container.v1beta1.Operation.Type|keyof typeof google.container.v1beta1.Operation.Type|null);

                /** Operation status */
                status?: (google.container.v1beta1.Operation.Status|keyof typeof google.container.v1beta1.Operation.Status|null);

                /** Operation detail */
                detail?: (string|null);

                /** Operation statusMessage */
                statusMessage?: (string|null);

                /** Operation selfLink */
                selfLink?: (string|null);

                /** Operation targetLink */
                targetLink?: (string|null);

                /** Operation location */
                location?: (string|null);

                /** Operation startTime */
                startTime?: (string|null);

                /** Operation endTime */
                endTime?: (string|null);

                /** Operation progress */
                progress?: (google.container.v1beta1.IOperationProgress|null);

                /** Operation clusterConditions */
                clusterConditions?: (google.container.v1beta1.IStatusCondition[]|null);

                /** Operation nodepoolConditions */
                nodepoolConditions?: (google.container.v1beta1.IStatusCondition[]|null);

                /** Operation error */
                error?: (google.rpc.IStatus|null);
            }

            /** Represents an Operation. */
            class Operation implements IOperation {

                /**
                 * Constructs a new Operation.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IOperation);

                /** Operation name. */
                public name: string;

                /** Operation zone. */
                public zone: string;

                /** Operation operationType. */
                public operationType: (google.container.v1beta1.Operation.Type|keyof typeof google.container.v1beta1.Operation.Type);

                /** Operation status. */
                public status: (google.container.v1beta1.Operation.Status|keyof typeof google.container.v1beta1.Operation.Status);

                /** Operation detail. */
                public detail: string;

                /** Operation statusMessage. */
                public statusMessage: string;

                /** Operation selfLink. */
                public selfLink: string;

                /** Operation targetLink. */
                public targetLink: string;

                /** Operation location. */
                public location: string;

                /** Operation startTime. */
                public startTime: string;

                /** Operation endTime. */
                public endTime: string;

                /** Operation progress. */
                public progress?: (google.container.v1beta1.IOperationProgress|null);

                /** Operation clusterConditions. */
                public clusterConditions: google.container.v1beta1.IStatusCondition[];

                /** Operation nodepoolConditions. */
                public nodepoolConditions: google.container.v1beta1.IStatusCondition[];

                /** Operation error. */
                public error?: (google.rpc.IStatus|null);

                /**
                 * Creates a new Operation instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns Operation instance
                 */
                public static create(properties?: google.container.v1beta1.IOperation): google.container.v1beta1.Operation;

                /**
                 * Encodes the specified Operation message. Does not implicitly {@link google.container.v1beta1.Operation.verify|verify} messages.
                 * @param message Operation message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IOperation, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified Operation message, length delimited. Does not implicitly {@link google.container.v1beta1.Operation.verify|verify} messages.
                 * @param message Operation message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IOperation, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes an Operation message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns Operation
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.Operation;

                /**
                 * Decodes an Operation message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns Operation
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.Operation;

                /**
                 * Verifies an Operation message.
                 * @param message Plain 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 Operation message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns Operation
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.Operation;

                /**
                 * Creates a plain object from an Operation message. Also converts values to other types if specified.
                 * @param message Operation
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.Operation, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this Operation to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for Operation
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace Operation {

                /** Status enum. */
                enum Status {
                    STATUS_UNSPECIFIED = 0,
                    PENDING = 1,
                    RUNNING = 2,
                    DONE = 3,
                    ABORTING = 4
                }

                /** Type enum. */
                enum Type {
                    TYPE_UNSPECIFIED = 0,
                    CREATE_CLUSTER = 1,
                    DELETE_CLUSTER = 2,
                    UPGRADE_MASTER = 3,
                    UPGRADE_NODES = 4,
                    REPAIR_CLUSTER = 5,
                    UPDATE_CLUSTER = 6,
                    CREATE_NODE_POOL = 7,
                    DELETE_NODE_POOL = 8,
                    SET_NODE_POOL_MANAGEMENT = 9,
                    AUTO_REPAIR_NODES = 10,
                    AUTO_UPGRADE_NODES = 11,
                    SET_LABELS = 12,
                    SET_MASTER_AUTH = 13,
                    SET_NODE_POOL_SIZE = 14,
                    SET_NETWORK_POLICY = 15,
                    SET_MAINTENANCE_POLICY = 16,
                    RESIZE_CLUSTER = 18,
                    FLEET_FEATURE_UPGRADE = 19
                }
            }

            /** Properties of an OperationProgress. */
            interface IOperationProgress {

                /** OperationProgress name */
                name?: (string|null);

                /** OperationProgress status */
                status?: (google.container.v1beta1.Operation.Status|keyof typeof google.container.v1beta1.Operation.Status|null);

                /** OperationProgress metrics */
                metrics?: (google.container.v1beta1.OperationProgress.IMetric[]|null);

                /** OperationProgress stages */
                stages?: (google.container.v1beta1.IOperationProgress[]|null);
            }

            /** Represents an OperationProgress. */
            class OperationProgress implements IOperationProgress {

                /**
                 * Constructs a new OperationProgress.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IOperationProgress);

                /** OperationProgress name. */
                public name: string;

                /** OperationProgress status. */
                public status: (google.container.v1beta1.Operation.Status|keyof typeof google.container.v1beta1.Operation.Status);

                /** OperationProgress metrics. */
                public metrics: google.container.v1beta1.OperationProgress.IMetric[];

                /** OperationProgress stages. */
                public stages: google.container.v1beta1.IOperationProgress[];

                /**
                 * Creates a new OperationProgress instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns OperationProgress instance
                 */
                public static create(properties?: google.container.v1beta1.IOperationProgress): google.container.v1beta1.OperationProgress;

                /**
                 * Encodes the specified OperationProgress message. Does not implicitly {@link google.container.v1beta1.OperationProgress.verify|verify} messages.
                 * @param message OperationProgress message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IOperationProgress, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified OperationProgress message, length delimited. Does not implicitly {@link google.container.v1beta1.OperationProgress.verify|verify} messages.
                 * @param message OperationProgress message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IOperationProgress, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes an OperationProgress message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns OperationProgress
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.OperationProgress;

                /**
                 * Decodes an OperationProgress message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns OperationProgress
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.OperationProgress;

                /**
                 * Verifies an OperationProgress message.
                 * @param message Plain 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 OperationProgress message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns OperationProgress
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.OperationProgress;

                /**
                 * Creates a plain object from an OperationProgress message. Also converts values to other types if specified.
                 * @param message OperationProgress
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.OperationProgress, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this OperationProgress to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for OperationProgress
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace OperationProgress {

                /** Properties of a Metric. */
                interface IMetric {

                    /** Metric name */
                    name?: (string|null);

                    /** Metric intValue */
                    intValue?: (number|Long|string|null);

                    /** Metric doubleValue */
                    doubleValue?: (number|null);

                    /** Metric stringValue */
                    stringValue?: (string|null);
                }

                /** Represents a Metric. */
                class Metric implements IMetric {

                    /**
                     * Constructs a new Metric.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.container.v1beta1.OperationProgress.IMetric);

                    /** Metric name. */
                    public name: string;

                    /** Metric intValue. */
                    public intValue?: (number|Long|string|null);

                    /** Metric doubleValue. */
                    public doubleValue?: (number|null);

                    /** Metric stringValue. */
                    public stringValue?: (string|null);

                    /** Metric value. */
                    public value?: ("intValue"|"doubleValue"|"stringValue");

                    /**
                     * Creates a new Metric instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Metric instance
                     */
                    public static create(properties?: google.container.v1beta1.OperationProgress.IMetric): google.container.v1beta1.OperationProgress.Metric;

                    /**
                     * Encodes the specified Metric message. Does not implicitly {@link google.container.v1beta1.OperationProgress.Metric.verify|verify} messages.
                     * @param message Metric message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.container.v1beta1.OperationProgress.IMetric, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Metric message, length delimited. Does not implicitly {@link google.container.v1beta1.OperationProgress.Metric.verify|verify} messages.
                     * @param message Metric message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.container.v1beta1.OperationProgress.IMetric, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Metric message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Metric
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.OperationProgress.Metric;

                    /**
                     * Decodes a Metric message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Metric
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.OperationProgress.Metric;

                    /**
                     * Verifies a Metric message.
                     * @param message Plain 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 Metric message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Metric
                     */
                    public static fromObject(object: { [k: string]: any }): google.container.v1beta1.OperationProgress.Metric;

                    /**
                     * Creates a plain object from a Metric message. Also converts values to other types if specified.
                     * @param message Metric
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.container.v1beta1.OperationProgress.Metric, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Metric to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Metric
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }
            }

            /** Properties of a CreateClusterRequest. */
            interface ICreateClusterRequest {

                /** CreateClusterRequest projectId */
                projectId?: (string|null);

                /** CreateClusterRequest zone */
                zone?: (string|null);

                /** CreateClusterRequest cluster */
                cluster?: (google.container.v1beta1.ICluster|null);

                /** CreateClusterRequest parent */
                parent?: (string|null);
            }

            /** Represents a CreateClusterRequest. */
            class CreateClusterRequest implements ICreateClusterRequest {

                /**
                 * Constructs a new CreateClusterRequest.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.ICreateClusterRequest);

                /** CreateClusterRequest projectId. */
                public projectId: string;

                /** CreateClusterRequest zone. */
                public zone: string;

                /** CreateClusterRequest cluster. */
                public cluster?: (google.container.v1beta1.ICluster|null);

                /** CreateClusterRequest parent. */
                public parent: string;

                /**
                 * Creates a new CreateClusterRequest instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns CreateClusterRequest instance
                 */
                public static create(properties?: google.container.v1beta1.ICreateClusterRequest): google.container.v1beta1.CreateClusterRequest;

                /**
                 * Encodes the specified CreateClusterRequest message. Does not implicitly {@link google.container.v1beta1.CreateClusterRequest.verify|verify} messages.
                 * @param message CreateClusterRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.ICreateClusterRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified CreateClusterRequest message, length delimited. Does not implicitly {@link google.container.v1beta1.CreateClusterRequest.verify|verify} messages.
                 * @param message CreateClusterRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.ICreateClusterRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a CreateClusterRequest message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns CreateClusterRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.CreateClusterRequest;

                /**
                 * Decodes a CreateClusterRequest message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns CreateClusterRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.CreateClusterRequest;

                /**
                 * Verifies a CreateClusterRequest message.
                 * @param message Plain 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 CreateClusterRequest message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns CreateClusterRequest
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.CreateClusterRequest;

                /**
                 * Creates a plain object from a CreateClusterRequest message. Also converts values to other types if specified.
                 * @param message CreateClusterRequest
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.CreateClusterRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this CreateClusterRequest to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for CreateClusterRequest
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a GetClusterRequest. */
            interface IGetClusterRequest {

                /** GetClusterRequest projectId */
                projectId?: (string|null);

                /** GetClusterRequest zone */
                zone?: (string|null);

                /** GetClusterRequest clusterId */
                clusterId?: (string|null);

                /** GetClusterRequest name */
                name?: (string|null);
            }

            /** Represents a GetClusterRequest. */
            class GetClusterRequest implements IGetClusterRequest {

                /**
                 * Constructs a new GetClusterRequest.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IGetClusterRequest);

                /** GetClusterRequest projectId. */
                public projectId: string;

                /** GetClusterRequest zone. */
                public zone: string;

                /** GetClusterRequest clusterId. */
                public clusterId: string;

                /** GetClusterRequest name. */
                public name: string;

                /**
                 * Creates a new GetClusterRequest instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns GetClusterRequest instance
                 */
                public static create(properties?: google.container.v1beta1.IGetClusterRequest): google.container.v1beta1.GetClusterRequest;

                /**
                 * Encodes the specified GetClusterRequest message. Does not implicitly {@link google.container.v1beta1.GetClusterRequest.verify|verify} messages.
                 * @param message GetClusterRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IGetClusterRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified GetClusterRequest message, length delimited. Does not implicitly {@link google.container.v1beta1.GetClusterRequest.verify|verify} messages.
                 * @param message GetClusterRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IGetClusterRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a GetClusterRequest message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns GetClusterRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.GetClusterRequest;

                /**
                 * Decodes a GetClusterRequest message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns GetClusterRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.GetClusterRequest;

                /**
                 * Verifies a GetClusterRequest message.
                 * @param message Plain 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 GetClusterRequest message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns GetClusterRequest
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.GetClusterRequest;

                /**
                 * Creates a plain object from a GetClusterRequest message. Also converts values to other types if specified.
                 * @param message GetClusterRequest
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.GetClusterRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this GetClusterRequest to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for GetClusterRequest
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of an UpdateClusterRequest. */
            interface IUpdateClusterRequest {

                /** UpdateClusterRequest projectId */
                projectId?: (string|null);

                /** UpdateClusterRequest zone */
                zone?: (string|null);

                /** UpdateClusterRequest clusterId */
                clusterId?: (string|null);

                /** UpdateClusterRequest update */
                update?: (google.container.v1beta1.IClusterUpdate|null);

                /** UpdateClusterRequest name */
                name?: (string|null);
            }

            /** Represents an UpdateClusterRequest. */
            class UpdateClusterRequest implements IUpdateClusterRequest {

                /**
                 * Constructs a new UpdateClusterRequest.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IUpdateClusterRequest);

                /** UpdateClusterRequest projectId. */
                public projectId: string;

                /** UpdateClusterRequest zone. */
                public zone: string;

                /** UpdateClusterRequest clusterId. */
                public clusterId: string;

                /** UpdateClusterRequest update. */
                public update?: (google.container.v1beta1.IClusterUpdate|null);

                /** UpdateClusterRequest name. */
                public name: string;

                /**
                 * Creates a new UpdateClusterRequest instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns UpdateClusterRequest instance
                 */
                public static create(properties?: google.container.v1beta1.IUpdateClusterRequest): google.container.v1beta1.UpdateClusterRequest;

                /**
                 * Encodes the specified UpdateClusterRequest message. Does not implicitly {@link google.container.v1beta1.UpdateClusterRequest.verify|verify} messages.
                 * @param message UpdateClusterRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IUpdateClusterRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified UpdateClusterRequest message, length delimited. Does not implicitly {@link google.container.v1beta1.UpdateClusterRequest.verify|verify} messages.
                 * @param message UpdateClusterRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IUpdateClusterRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes an UpdateClusterRequest message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns UpdateClusterRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.UpdateClusterRequest;

                /**
                 * Decodes an UpdateClusterRequest message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns UpdateClusterRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.UpdateClusterRequest;

                /**
                 * Verifies an UpdateClusterRequest message.
                 * @param message Plain 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 UpdateClusterRequest message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns UpdateClusterRequest
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.UpdateClusterRequest;

                /**
                 * Creates a plain object from an UpdateClusterRequest message. Also converts values to other types if specified.
                 * @param message UpdateClusterRequest
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.UpdateClusterRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this UpdateClusterRequest to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for UpdateClusterRequest
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of an UpdateNodePoolRequest. */
            interface IUpdateNodePoolRequest {

                /** UpdateNodePoolRequest projectId */
                projectId?: (string|null);

                /** UpdateNodePoolRequest zone */
                zone?: (string|null);

                /** UpdateNodePoolRequest clusterId */
                clusterId?: (string|null);

                /** UpdateNodePoolRequest nodePoolId */
                nodePoolId?: (string|null);

                /** UpdateNodePoolRequest nodeVersion */
                nodeVersion?: (string|null);

                /** UpdateNodePoolRequest imageType */
                imageType?: (string|null);

                /** UpdateNodePoolRequest locations */
                locations?: (string[]|null);

                /** UpdateNodePoolRequest workloadMetadataConfig */
                workloadMetadataConfig?: (google.container.v1beta1.IWorkloadMetadataConfig|null);

                /** UpdateNodePoolRequest name */
                name?: (string|null);

                /** UpdateNodePoolRequest upgradeSettings */
                upgradeSettings?: (google.container.v1beta1.NodePool.IUpgradeSettings|null);

                /** UpdateNodePoolRequest tags */
                tags?: (google.container.v1beta1.INetworkTags|null);

                /** UpdateNodePoolRequest taints */
                taints?: (google.container.v1beta1.INodeTaints|null);

                /** UpdateNodePoolRequest labels */
                labels?: (google.container.v1beta1.INodeLabels|null);

                /** UpdateNodePoolRequest linuxNodeConfig */
                linuxNodeConfig?: (google.container.v1beta1.ILinuxNodeConfig|null);

                /** UpdateNodePoolRequest kubeletConfig */
                kubeletConfig?: (google.container.v1beta1.INodeKubeletConfig|null);

                /** UpdateNodePoolRequest nodeNetworkConfig */
                nodeNetworkConfig?: (google.container.v1beta1.INodeNetworkConfig|null);

                /** UpdateNodePoolRequest gcfsConfig */
                gcfsConfig?: (google.container.v1beta1.IGcfsConfig|null);

                /** UpdateNodePoolRequest confidentialNodes */
                confidentialNodes?: (google.container.v1beta1.IConfidentialNodes|null);

                /** UpdateNodePoolRequest gvnic */
                gvnic?: (google.container.v1beta1.IVirtualNIC|null);

                /** UpdateNodePoolRequest etag */
                etag?: (string|null);

                /** UpdateNodePoolRequest fastSocket */
                fastSocket?: (google.container.v1beta1.IFastSocket|null);

                /** UpdateNodePoolRequest loggingConfig */
                loggingConfig?: (google.container.v1beta1.INodePoolLoggingConfig|null);

                /** UpdateNodePoolRequest resourceLabels */
                resourceLabels?: (google.container.v1beta1.IResourceLabels|null);

                /** UpdateNodePoolRequest windowsNodeConfig */
                windowsNodeConfig?: (google.container.v1beta1.IWindowsNodeConfig|null);

                /** UpdateNodePoolRequest accelerators */
                accelerators?: (google.container.v1beta1.IAcceleratorConfig[]|null);

                /** UpdateNodePoolRequest machineType */
                machineType?: (string|null);

                /** UpdateNodePoolRequest diskType */
                diskType?: (string|null);

                /** UpdateNodePoolRequest diskSizeGb */
                diskSizeGb?: (number|Long|string|null);

                /** UpdateNodePoolRequest resourceManagerTags */
                resourceManagerTags?: (google.container.v1beta1.IResourceManagerTags|null);

                /** UpdateNodePoolRequest containerdConfig */
                containerdConfig?: (google.container.v1beta1.IContainerdConfig|null);

                /** UpdateNodePoolRequest queuedProvisioning */
                queuedProvisioning?: (google.container.v1beta1.NodePool.IQueuedProvisioning|null);

                /** UpdateNodePoolRequest storagePools */
                storagePools?: (string[]|null);

                /** UpdateNodePoolRequest maxRunDuration */
                maxRunDuration?: (google.protobuf.IDuration|null);

                /** UpdateNodePoolRequest flexStart */
                flexStart?: (boolean|null);

                /** UpdateNodePoolRequest bootDisk */
                bootDisk?: (google.container.v1beta1.IBootDisk|null);

                /** UpdateNodePoolRequest nodeDrainConfig */
                nodeDrainConfig?: (google.container.v1beta1.NodePool.INodeDrainConfig|null);

                /** UpdateNodePoolRequest consolidationDelay */
                consolidationDelay?: (google.protobuf.IDuration|null);

                /** UpdateNodePoolRequest taintConfig */
                taintConfig?: (google.container.v1beta1.ITaintConfig|null);
            }

            /** Represents an UpdateNodePoolRequest. */
            class UpdateNodePoolRequest implements IUpdateNodePoolRequest {

                /**
                 * Constructs a new UpdateNodePoolRequest.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IUpdateNodePoolRequest);

                /** UpdateNodePoolRequest projectId. */
                public projectId: string;

                /** UpdateNodePoolRequest zone. */
                public zone: string;

                /** UpdateNodePoolRequest clusterId. */
                public clusterId: string;

                /** UpdateNodePoolRequest nodePoolId. */
                public nodePoolId: string;

                /** UpdateNodePoolRequest nodeVersion. */
                public nodeVersion: string;

                /** UpdateNodePoolRequest imageType. */
                public imageType: string;

                /** UpdateNodePoolRequest locations. */
                public locations: string[];

                /** UpdateNodePoolRequest workloadMetadataConfig. */
                public workloadMetadataConfig?: (google.container.v1beta1.IWorkloadMetadataConfig|null);

                /** UpdateNodePoolRequest name. */
                public name: string;

                /** UpdateNodePoolRequest upgradeSettings. */
                public upgradeSettings?: (google.container.v1beta1.NodePool.IUpgradeSettings|null);

                /** UpdateNodePoolRequest tags. */
                public tags?: (google.container.v1beta1.INetworkTags|null);

                /** UpdateNodePoolRequest taints. */
                public taints?: (google.container.v1beta1.INodeTaints|null);

                /** UpdateNodePoolRequest labels. */
                public labels?: (google.container.v1beta1.INodeLabels|null);

                /** UpdateNodePoolRequest linuxNodeConfig. */
                public linuxNodeConfig?: (google.container.v1beta1.ILinuxNodeConfig|null);

                /** UpdateNodePoolRequest kubeletConfig. */
                public kubeletConfig?: (google.container.v1beta1.INodeKubeletConfig|null);

                /** UpdateNodePoolRequest nodeNetworkConfig. */
                public nodeNetworkConfig?: (google.container.v1beta1.INodeNetworkConfig|null);

                /** UpdateNodePoolRequest gcfsConfig. */
                public gcfsConfig?: (google.container.v1beta1.IGcfsConfig|null);

                /** UpdateNodePoolRequest confidentialNodes. */
                public confidentialNodes?: (google.container.v1beta1.IConfidentialNodes|null);

                /** UpdateNodePoolRequest gvnic. */
                public gvnic?: (google.container.v1beta1.IVirtualNIC|null);

                /** UpdateNodePoolRequest etag. */
                public etag: string;

                /** UpdateNodePoolRequest fastSocket. */
                public fastSocket?: (google.container.v1beta1.IFastSocket|null);

                /** UpdateNodePoolRequest loggingConfig. */
                public loggingConfig?: (google.container.v1beta1.INodePoolLoggingConfig|null);

                /** UpdateNodePoolRequest resourceLabels. */
                public resourceLabels?: (google.container.v1beta1.IResourceLabels|null);

                /** UpdateNodePoolRequest windowsNodeConfig. */
                public windowsNodeConfig?: (google.container.v1beta1.IWindowsNodeConfig|null);

                /** UpdateNodePoolRequest accelerators. */
                public accelerators: google.container.v1beta1.IAcceleratorConfig[];

                /** UpdateNodePoolRequest machineType. */
                public machineType: string;

                /** UpdateNodePoolRequest diskType. */
                public diskType: string;

                /** UpdateNodePoolRequest diskSizeGb. */
                public diskSizeGb: (number|Long|string);

                /** UpdateNodePoolRequest resourceManagerTags. */
                public resourceManagerTags?: (google.container.v1beta1.IResourceManagerTags|null);

                /** UpdateNodePoolRequest containerdConfig. */
                public containerdConfig?: (google.container.v1beta1.IContainerdConfig|null);

                /** UpdateNodePoolRequest queuedProvisioning. */
                public queuedProvisioning?: (google.container.v1beta1.NodePool.IQueuedProvisioning|null);

                /** UpdateNodePoolRequest storagePools. */
                public storagePools: string[];

                /** UpdateNodePoolRequest maxRunDuration. */
                public maxRunDuration?: (google.protobuf.IDuration|null);

                /** UpdateNodePoolRequest flexStart. */
                public flexStart?: (boolean|null);

                /** UpdateNodePoolRequest bootDisk. */
                public bootDisk?: (google.container.v1beta1.IBootDisk|null);

                /** UpdateNodePoolRequest nodeDrainConfig. */
                public nodeDrainConfig?: (google.container.v1beta1.NodePool.INodeDrainConfig|null);

                /** UpdateNodePoolRequest consolidationDelay. */
                public consolidationDelay?: (google.protobuf.IDuration|null);

                /** UpdateNodePoolRequest taintConfig. */
                public taintConfig?: (google.container.v1beta1.ITaintConfig|null);

                /**
                 * Creates a new UpdateNodePoolRequest instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns UpdateNodePoolRequest instance
                 */
                public static create(properties?: google.container.v1beta1.IUpdateNodePoolRequest): google.container.v1beta1.UpdateNodePoolRequest;

                /**
                 * Encodes the specified UpdateNodePoolRequest message. Does not implicitly {@link google.container.v1beta1.UpdateNodePoolRequest.verify|verify} messages.
                 * @param message UpdateNodePoolRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IUpdateNodePoolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified UpdateNodePoolRequest message, length delimited. Does not implicitly {@link google.container.v1beta1.UpdateNodePoolRequest.verify|verify} messages.
                 * @param message UpdateNodePoolRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IUpdateNodePoolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes an UpdateNodePoolRequest message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns UpdateNodePoolRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.UpdateNodePoolRequest;

                /**
                 * Decodes an UpdateNodePoolRequest message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns UpdateNodePoolRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.UpdateNodePoolRequest;

                /**
                 * Verifies an UpdateNodePoolRequest message.
                 * @param message Plain 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 UpdateNodePoolRequest message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns UpdateNodePoolRequest
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.UpdateNodePoolRequest;

                /**
                 * Creates a plain object from an UpdateNodePoolRequest message. Also converts values to other types if specified.
                 * @param message UpdateNodePoolRequest
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.UpdateNodePoolRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this UpdateNodePoolRequest to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for UpdateNodePoolRequest
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a SetNodePoolAutoscalingRequest. */
            interface ISetNodePoolAutoscalingRequest {

                /** SetNodePoolAutoscalingRequest projectId */
                projectId?: (string|null);

                /** SetNodePoolAutoscalingRequest zone */
                zone?: (string|null);

                /** SetNodePoolAutoscalingRequest clusterId */
                clusterId?: (string|null);

                /** SetNodePoolAutoscalingRequest nodePoolId */
                nodePoolId?: (string|null);

                /** SetNodePoolAutoscalingRequest autoscaling */
                autoscaling?: (google.container.v1beta1.INodePoolAutoscaling|null);

                /** SetNodePoolAutoscalingRequest name */
                name?: (string|null);
            }

            /** Represents a SetNodePoolAutoscalingRequest. */
            class SetNodePoolAutoscalingRequest implements ISetNodePoolAutoscalingRequest {

                /**
                 * Constructs a new SetNodePoolAutoscalingRequest.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.ISetNodePoolAutoscalingRequest);

                /** SetNodePoolAutoscalingRequest projectId. */
                public projectId: string;

                /** SetNodePoolAutoscalingRequest zone. */
                public zone: string;

                /** SetNodePoolAutoscalingRequest clusterId. */
                public clusterId: string;

                /** SetNodePoolAutoscalingRequest nodePoolId. */
                public nodePoolId: string;

                /** SetNodePoolAutoscalingRequest autoscaling. */
                public autoscaling?: (google.container.v1beta1.INodePoolAutoscaling|null);

                /** SetNodePoolAutoscalingRequest name. */
                public name: string;

                /**
                 * Creates a new SetNodePoolAutoscalingRequest instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns SetNodePoolAutoscalingRequest instance
                 */
                public static create(properties?: google.container.v1beta1.ISetNodePoolAutoscalingRequest): google.container.v1beta1.SetNodePoolAutoscalingRequest;

                /**
                 * Encodes the specified SetNodePoolAutoscalingRequest message. Does not implicitly {@link google.container.v1beta1.SetNodePoolAutoscalingRequest.verify|verify} messages.
                 * @param message SetNodePoolAutoscalingRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.ISetNodePoolAutoscalingRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified SetNodePoolAutoscalingRequest message, length delimited. Does not implicitly {@link google.container.v1beta1.SetNodePoolAutoscalingRequest.verify|verify} messages.
                 * @param message SetNodePoolAutoscalingRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.ISetNodePoolAutoscalingRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a SetNodePoolAutoscalingRequest message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns SetNodePoolAutoscalingRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.SetNodePoolAutoscalingRequest;

                /**
                 * Decodes a SetNodePoolAutoscalingRequest message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns SetNodePoolAutoscalingRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.SetNodePoolAutoscalingRequest;

                /**
                 * Verifies a SetNodePoolAutoscalingRequest message.
                 * @param message Plain 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 SetNodePoolAutoscalingRequest message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns SetNodePoolAutoscalingRequest
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.SetNodePoolAutoscalingRequest;

                /**
                 * Creates a plain object from a SetNodePoolAutoscalingRequest message. Also converts values to other types if specified.
                 * @param message SetNodePoolAutoscalingRequest
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.SetNodePoolAutoscalingRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this SetNodePoolAutoscalingRequest to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for SetNodePoolAutoscalingRequest
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a SetLoggingServiceRequest. */
            interface ISetLoggingServiceRequest {

                /** SetLoggingServiceRequest projectId */
                projectId?: (string|null);

                /** SetLoggingServiceRequest zone */
                zone?: (string|null);

                /** SetLoggingServiceRequest clusterId */
                clusterId?: (string|null);

                /** SetLoggingServiceRequest loggingService */
                loggingService?: (string|null);

                /** SetLoggingServiceRequest name */
                name?: (string|null);
            }

            /** Represents a SetLoggingServiceRequest. */
            class SetLoggingServiceRequest implements ISetLoggingServiceRequest {

                /**
                 * Constructs a new SetLoggingServiceRequest.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.ISetLoggingServiceRequest);

                /** SetLoggingServiceRequest projectId. */
                public projectId: string;

                /** SetLoggingServiceRequest zone. */
                public zone: string;

                /** SetLoggingServiceRequest clusterId. */
                public clusterId: string;

                /** SetLoggingServiceRequest loggingService. */
                public loggingService: string;

                /** SetLoggingServiceRequest name. */
                public name: string;

                /**
                 * Creates a new SetLoggingServiceRequest instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns SetLoggingServiceRequest instance
                 */
                public static create(properties?: google.container.v1beta1.ISetLoggingServiceRequest): google.container.v1beta1.SetLoggingServiceRequest;

                /**
                 * Encodes the specified SetLoggingServiceRequest message. Does not implicitly {@link google.container.v1beta1.SetLoggingServiceRequest.verify|verify} messages.
                 * @param message SetLoggingServiceRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.ISetLoggingServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified SetLoggingServiceRequest message, length delimited. Does not implicitly {@link google.container.v1beta1.SetLoggingServiceRequest.verify|verify} messages.
                 * @param message SetLoggingServiceRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.ISetLoggingServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a SetLoggingServiceRequest message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns SetLoggingServiceRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.SetLoggingServiceRequest;

                /**
                 * Decodes a SetLoggingServiceRequest message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns SetLoggingServiceRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.SetLoggingServiceRequest;

                /**
                 * Verifies a SetLoggingServiceRequest message.
                 * @param message Plain 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 SetLoggingServiceRequest message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns SetLoggingServiceRequest
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.SetLoggingServiceRequest;

                /**
                 * Creates a plain object from a SetLoggingServiceRequest message. Also converts values to other types if specified.
                 * @param message SetLoggingServiceRequest
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.SetLoggingServiceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this SetLoggingServiceRequest to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for SetLoggingServiceRequest
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a SetMonitoringServiceRequest. */
            interface ISetMonitoringServiceRequest {

                /** SetMonitoringServiceRequest projectId */
                projectId?: (string|null);

                /** SetMonitoringServiceRequest zone */
                zone?: (string|null);

                /** SetMonitoringServiceRequest clusterId */
                clusterId?: (string|null);

                /** SetMonitoringServiceRequest monitoringService */
                monitoringService?: (string|null);

                /** SetMonitoringServiceRequest name */
                name?: (string|null);
            }

            /** Represents a SetMonitoringServiceRequest. */
            class SetMonitoringServiceRequest implements ISetMonitoringServiceRequest {

                /**
                 * Constructs a new SetMonitoringServiceRequest.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.ISetMonitoringServiceRequest);

                /** SetMonitoringServiceRequest projectId. */
                public projectId: string;

                /** SetMonitoringServiceRequest zone. */
                public zone: string;

                /** SetMonitoringServiceRequest clusterId. */
                public clusterId: string;

                /** SetMonitoringServiceRequest monitoringService. */
                public monitoringService: string;

                /** SetMonitoringServiceRequest name. */
                public name: string;

                /**
                 * Creates a new SetMonitoringServiceRequest instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns SetMonitoringServiceRequest instance
                 */
                public static create(properties?: google.container.v1beta1.ISetMonitoringServiceRequest): google.container.v1beta1.SetMonitoringServiceRequest;

                /**
                 * Encodes the specified SetMonitoringServiceRequest message. Does not implicitly {@link google.container.v1beta1.SetMonitoringServiceRequest.verify|verify} messages.
                 * @param message SetMonitoringServiceRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.ISetMonitoringServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified SetMonitoringServiceRequest message, length delimited. Does not implicitly {@link google.container.v1beta1.SetMonitoringServiceRequest.verify|verify} messages.
                 * @param message SetMonitoringServiceRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.ISetMonitoringServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a SetMonitoringServiceRequest message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns SetMonitoringServiceRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.SetMonitoringServiceRequest;

                /**
                 * Decodes a SetMonitoringServiceRequest message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns SetMonitoringServiceRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.SetMonitoringServiceRequest;

                /**
                 * Verifies a SetMonitoringServiceRequest message.
                 * @param message Plain 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 SetMonitoringServiceRequest message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns SetMonitoringServiceRequest
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.SetMonitoringServiceRequest;

                /**
                 * Creates a plain object from a SetMonitoringServiceRequest message. Also converts values to other types if specified.
                 * @param message SetMonitoringServiceRequest
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.SetMonitoringServiceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this SetMonitoringServiceRequest to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for SetMonitoringServiceRequest
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a SetAddonsConfigRequest. */
            interface ISetAddonsConfigRequest {

                /** SetAddonsConfigRequest projectId */
                projectId?: (string|null);

                /** SetAddonsConfigRequest zone */
                zone?: (string|null);

                /** SetAddonsConfigRequest clusterId */
                clusterId?: (string|null);

                /** SetAddonsConfigRequest addonsConfig */
                addonsConfig?: (google.container.v1beta1.IAddonsConfig|null);

                /** SetAddonsConfigRequest name */
                name?: (string|null);
            }

            /** Represents a SetAddonsConfigRequest. */
            class SetAddonsConfigRequest implements ISetAddonsConfigRequest {

                /**
                 * Constructs a new SetAddonsConfigRequest.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.ISetAddonsConfigRequest);

                /** SetAddonsConfigRequest projectId. */
                public projectId: string;

                /** SetAddonsConfigRequest zone. */
                public zone: string;

                /** SetAddonsConfigRequest clusterId. */
                public clusterId: string;

                /** SetAddonsConfigRequest addonsConfig. */
                public addonsConfig?: (google.container.v1beta1.IAddonsConfig|null);

                /** SetAddonsConfigRequest name. */
                public name: string;

                /**
                 * Creates a new SetAddonsConfigRequest instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns SetAddonsConfigRequest instance
                 */
                public static create(properties?: google.container.v1beta1.ISetAddonsConfigRequest): google.container.v1beta1.SetAddonsConfigRequest;

                /**
                 * Encodes the specified SetAddonsConfigRequest message. Does not implicitly {@link google.container.v1beta1.SetAddonsConfigRequest.verify|verify} messages.
                 * @param message SetAddonsConfigRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.ISetAddonsConfigRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified SetAddonsConfigRequest message, length delimited. Does not implicitly {@link google.container.v1beta1.SetAddonsConfigRequest.verify|verify} messages.
                 * @param message SetAddonsConfigRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.ISetAddonsConfigRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a SetAddonsConfigRequest message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns SetAddonsConfigRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.SetAddonsConfigRequest;

                /**
                 * Decodes a SetAddonsConfigRequest message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns SetAddonsConfigRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.SetAddonsConfigRequest;

                /**
                 * Verifies a SetAddonsConfigRequest message.
                 * @param message Plain 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 SetAddonsConfigRequest message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns SetAddonsConfigRequest
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.SetAddonsConfigRequest;

                /**
                 * Creates a plain object from a SetAddonsConfigRequest message. Also converts values to other types if specified.
                 * @param message SetAddonsConfigRequest
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.SetAddonsConfigRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this SetAddonsConfigRequest to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for SetAddonsConfigRequest
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a SetLocationsRequest. */
            interface ISetLocationsRequest {

                /** SetLocationsRequest projectId */
                projectId?: (string|null);

                /** SetLocationsRequest zone */
                zone?: (string|null);

                /** SetLocationsRequest clusterId */
                clusterId?: (string|null);

                /** SetLocationsRequest locations */
                locations?: (string[]|null);

                /** SetLocationsRequest name */
                name?: (string|null);
            }

            /** Represents a SetLocationsRequest. */
            class SetLocationsRequest implements ISetLocationsRequest {

                /**
                 * Constructs a new SetLocationsRequest.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.ISetLocationsRequest);

                /** SetLocationsRequest projectId. */
                public projectId: string;

                /** SetLocationsRequest zone. */
                public zone: string;

                /** SetLocationsRequest clusterId. */
                public clusterId: string;

                /** SetLocationsRequest locations. */
                public locations: string[];

                /** SetLocationsRequest name. */
                public name: string;

                /**
                 * Creates a new SetLocationsRequest instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns SetLocationsRequest instance
                 */
                public static create(properties?: google.container.v1beta1.ISetLocationsRequest): google.container.v1beta1.SetLocationsRequest;

                /**
                 * Encodes the specified SetLocationsRequest message. Does not implicitly {@link google.container.v1beta1.SetLocationsRequest.verify|verify} messages.
                 * @param message SetLocationsRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.ISetLocationsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified SetLocationsRequest message, length delimited. Does not implicitly {@link google.container.v1beta1.SetLocationsRequest.verify|verify} messages.
                 * @param message SetLocationsRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.ISetLocationsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a SetLocationsRequest message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns SetLocationsRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.SetLocationsRequest;

                /**
                 * Decodes a SetLocationsRequest message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns SetLocationsRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.SetLocationsRequest;

                /**
                 * Verifies a SetLocationsRequest message.
                 * @param message Plain 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 SetLocationsRequest message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns SetLocationsRequest
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.SetLocationsRequest;

                /**
                 * Creates a plain object from a SetLocationsRequest message. Also converts values to other types if specified.
                 * @param message SetLocationsRequest
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.SetLocationsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this SetLocationsRequest to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for SetLocationsRequest
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of an UpdateMasterRequest. */
            interface IUpdateMasterRequest {

                /** UpdateMasterRequest projectId */
                projectId?: (string|null);

                /** UpdateMasterRequest zone */
                zone?: (string|null);

                /** UpdateMasterRequest clusterId */
                clusterId?: (string|null);

                /** UpdateMasterRequest masterVersion */
                masterVersion?: (string|null);

                /** UpdateMasterRequest name */
                name?: (string|null);
            }

            /** Represents an UpdateMasterRequest. */
            class UpdateMasterRequest implements IUpdateMasterRequest {

                /**
                 * Constructs a new UpdateMasterRequest.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IUpdateMasterRequest);

                /** UpdateMasterRequest projectId. */
                public projectId: string;

                /** UpdateMasterRequest zone. */
                public zone: string;

                /** UpdateMasterRequest clusterId. */
                public clusterId: string;

                /** UpdateMasterRequest masterVersion. */
                public masterVersion: string;

                /** UpdateMasterRequest name. */
                public name: string;

                /**
                 * Creates a new UpdateMasterRequest instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns UpdateMasterRequest instance
                 */
                public static create(properties?: google.container.v1beta1.IUpdateMasterRequest): google.container.v1beta1.UpdateMasterRequest;

                /**
                 * Encodes the specified UpdateMasterRequest message. Does not implicitly {@link google.container.v1beta1.UpdateMasterRequest.verify|verify} messages.
                 * @param message UpdateMasterRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IUpdateMasterRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified UpdateMasterRequest message, length delimited. Does not implicitly {@link google.container.v1beta1.UpdateMasterRequest.verify|verify} messages.
                 * @param message UpdateMasterRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IUpdateMasterRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes an UpdateMasterRequest message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns UpdateMasterRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.UpdateMasterRequest;

                /**
                 * Decodes an UpdateMasterRequest message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns UpdateMasterRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.UpdateMasterRequest;

                /**
                 * Verifies an UpdateMasterRequest message.
                 * @param message Plain 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 UpdateMasterRequest message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns UpdateMasterRequest
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.UpdateMasterRequest;

                /**
                 * Creates a plain object from an UpdateMasterRequest message. Also converts values to other types if specified.
                 * @param message UpdateMasterRequest
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.UpdateMasterRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this UpdateMasterRequest to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for UpdateMasterRequest
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a SetMasterAuthRequest. */
            interface ISetMasterAuthRequest {

                /** SetMasterAuthRequest projectId */
                projectId?: (string|null);

                /** SetMasterAuthRequest zone */
                zone?: (string|null);

                /** SetMasterAuthRequest clusterId */
                clusterId?: (string|null);

                /** SetMasterAuthRequest action */
                action?: (google.container.v1beta1.SetMasterAuthRequest.Action|keyof typeof google.container.v1beta1.SetMasterAuthRequest.Action|null);

                /** SetMasterAuthRequest update */
                update?: (google.container.v1beta1.IMasterAuth|null);

                /** SetMasterAuthRequest name */
                name?: (string|null);
            }

            /** Represents a SetMasterAuthRequest. */
            class SetMasterAuthRequest implements ISetMasterAuthRequest {

                /**
                 * Constructs a new SetMasterAuthRequest.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.ISetMasterAuthRequest);

                /** SetMasterAuthRequest projectId. */
                public projectId: string;

                /** SetMasterAuthRequest zone. */
                public zone: string;

                /** SetMasterAuthRequest clusterId. */
                public clusterId: string;

                /** SetMasterAuthRequest action. */
                public action: (google.container.v1beta1.SetMasterAuthRequest.Action|keyof typeof google.container.v1beta1.SetMasterAuthRequest.Action);

                /** SetMasterAuthRequest update. */
                public update?: (google.container.v1beta1.IMasterAuth|null);

                /** SetMasterAuthRequest name. */
                public name: string;

                /**
                 * Creates a new SetMasterAuthRequest instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns SetMasterAuthRequest instance
                 */
                public static create(properties?: google.container.v1beta1.ISetMasterAuthRequest): google.container.v1beta1.SetMasterAuthRequest;

                /**
                 * Encodes the specified SetMasterAuthRequest message. Does not implicitly {@link google.container.v1beta1.SetMasterAuthRequest.verify|verify} messages.
                 * @param message SetMasterAuthRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.ISetMasterAuthRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified SetMasterAuthRequest message, length delimited. Does not implicitly {@link google.container.v1beta1.SetMasterAuthRequest.verify|verify} messages.
                 * @param message SetMasterAuthRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.ISetMasterAuthRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a SetMasterAuthRequest message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns SetMasterAuthRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.SetMasterAuthRequest;

                /**
                 * Decodes a SetMasterAuthRequest message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns SetMasterAuthRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.SetMasterAuthRequest;

                /**
                 * Verifies a SetMasterAuthRequest message.
                 * @param message Plain 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 SetMasterAuthRequest message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns SetMasterAuthRequest
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.SetMasterAuthRequest;

                /**
                 * Creates a plain object from a SetMasterAuthRequest message. Also converts values to other types if specified.
                 * @param message SetMasterAuthRequest
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.SetMasterAuthRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this SetMasterAuthRequest to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for SetMasterAuthRequest
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace SetMasterAuthRequest {

                /** Action enum. */
                enum Action {
                    UNKNOWN = 0,
                    SET_PASSWORD = 1,
                    GENERATE_PASSWORD = 2,
                    SET_USERNAME = 3
                }
            }

            /** Properties of a DeleteClusterRequest. */
            interface IDeleteClusterRequest {

                /** DeleteClusterRequest projectId */
                projectId?: (string|null);

                /** DeleteClusterRequest zone */
                zone?: (string|null);

                /** DeleteClusterRequest clusterId */
                clusterId?: (string|null);

                /** DeleteClusterRequest name */
                name?: (string|null);
            }

            /** Represents a DeleteClusterRequest. */
            class DeleteClusterRequest implements IDeleteClusterRequest {

                /**
                 * Constructs a new DeleteClusterRequest.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IDeleteClusterRequest);

                /** DeleteClusterRequest projectId. */
                public projectId: string;

                /** DeleteClusterRequest zone. */
                public zone: string;

                /** DeleteClusterRequest clusterId. */
                public clusterId: string;

                /** DeleteClusterRequest name. */
                public name: string;

                /**
                 * Creates a new DeleteClusterRequest instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns DeleteClusterRequest instance
                 */
                public static create(properties?: google.container.v1beta1.IDeleteClusterRequest): google.container.v1beta1.DeleteClusterRequest;

                /**
                 * Encodes the specified DeleteClusterRequest message. Does not implicitly {@link google.container.v1beta1.DeleteClusterRequest.verify|verify} messages.
                 * @param message DeleteClusterRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IDeleteClusterRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified DeleteClusterRequest message, length delimited. Does not implicitly {@link google.container.v1beta1.DeleteClusterRequest.verify|verify} messages.
                 * @param message DeleteClusterRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IDeleteClusterRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a DeleteClusterRequest message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns DeleteClusterRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.DeleteClusterRequest;

                /**
                 * Decodes a DeleteClusterRequest message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns DeleteClusterRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.DeleteClusterRequest;

                /**
                 * Verifies a DeleteClusterRequest message.
                 * @param message Plain 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 DeleteClusterRequest message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns DeleteClusterRequest
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.DeleteClusterRequest;

                /**
                 * Creates a plain object from a DeleteClusterRequest message. Also converts values to other types if specified.
                 * @param message DeleteClusterRequest
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.DeleteClusterRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this DeleteClusterRequest to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for DeleteClusterRequest
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a ListClustersRequest. */
            interface IListClustersRequest {

                /** ListClustersRequest projectId */
                projectId?: (string|null);

                /** ListClustersRequest zone */
                zone?: (string|null);

                /** ListClustersRequest parent */
                parent?: (string|null);
            }

            /** Represents a ListClustersRequest. */
            class ListClustersRequest implements IListClustersRequest {

                /**
                 * Constructs a new ListClustersRequest.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IListClustersRequest);

                /** ListClustersRequest projectId. */
                public projectId: string;

                /** ListClustersRequest zone. */
                public zone: string;

                /** ListClustersRequest parent. */
                public parent: string;

                /**
                 * Creates a new ListClustersRequest instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ListClustersRequest instance
                 */
                public static create(properties?: google.container.v1beta1.IListClustersRequest): google.container.v1beta1.ListClustersRequest;

                /**
                 * Encodes the specified ListClustersRequest message. Does not implicitly {@link google.container.v1beta1.ListClustersRequest.verify|verify} messages.
                 * @param message ListClustersRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IListClustersRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified ListClustersRequest message, length delimited. Does not implicitly {@link google.container.v1beta1.ListClustersRequest.verify|verify} messages.
                 * @param message ListClustersRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IListClustersRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a ListClustersRequest message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ListClustersRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.ListClustersRequest;

                /**
                 * Decodes a ListClustersRequest message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ListClustersRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.ListClustersRequest;

                /**
                 * Verifies a ListClustersRequest message.
                 * @param message Plain 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 ListClustersRequest message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ListClustersRequest
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.ListClustersRequest;

                /**
                 * Creates a plain object from a ListClustersRequest message. Also converts values to other types if specified.
                 * @param message ListClustersRequest
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.ListClustersRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ListClustersRequest to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for ListClustersRequest
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a ListClustersResponse. */
            interface IListClustersResponse {

                /** ListClustersResponse clusters */
                clusters?: (google.container.v1beta1.ICluster[]|null);

                /** ListClustersResponse missingZones */
                missingZones?: (string[]|null);
            }

            /** Represents a ListClustersResponse. */
            class ListClustersResponse implements IListClustersResponse {

                /**
                 * Constructs a new ListClustersResponse.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IListClustersResponse);

                /** ListClustersResponse clusters. */
                public clusters: google.container.v1beta1.ICluster[];

                /** ListClustersResponse missingZones. */
                public missingZones: string[];

                /**
                 * Creates a new ListClustersResponse instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ListClustersResponse instance
                 */
                public static create(properties?: google.container.v1beta1.IListClustersResponse): google.container.v1beta1.ListClustersResponse;

                /**
                 * Encodes the specified ListClustersResponse message. Does not implicitly {@link google.container.v1beta1.ListClustersResponse.verify|verify} messages.
                 * @param message ListClustersResponse message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IListClustersResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified ListClustersResponse message, length delimited. Does not implicitly {@link google.container.v1beta1.ListClustersResponse.verify|verify} messages.
                 * @param message ListClustersResponse message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IListClustersResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a ListClustersResponse message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ListClustersResponse
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.ListClustersResponse;

                /**
                 * Decodes a ListClustersResponse message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ListClustersResponse
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.ListClustersResponse;

                /**
                 * Verifies a ListClustersResponse message.
                 * @param message Plain 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 ListClustersResponse message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ListClustersResponse
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.ListClustersResponse;

                /**
                 * Creates a plain object from a ListClustersResponse message. Also converts values to other types if specified.
                 * @param message ListClustersResponse
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.ListClustersResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ListClustersResponse to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for ListClustersResponse
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a GetOperationRequest. */
            interface IGetOperationRequest {

                /** GetOperationRequest projectId */
                projectId?: (string|null);

                /** GetOperationRequest zone */
                zone?: (string|null);

                /** GetOperationRequest operationId */
                operationId?: (string|null);

                /** GetOperationRequest name */
                name?: (string|null);
            }

            /** Represents a GetOperationRequest. */
            class GetOperationRequest implements IGetOperationRequest {

                /**
                 * Constructs a new GetOperationRequest.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IGetOperationRequest);

                /** GetOperationRequest projectId. */
                public projectId: string;

                /** GetOperationRequest zone. */
                public zone: string;

                /** GetOperationRequest operationId. */
                public operationId: string;

                /** GetOperationRequest name. */
                public name: string;

                /**
                 * Creates a new GetOperationRequest instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns GetOperationRequest instance
                 */
                public static create(properties?: google.container.v1beta1.IGetOperationRequest): google.container.v1beta1.GetOperationRequest;

                /**
                 * Encodes the specified GetOperationRequest message. Does not implicitly {@link google.container.v1beta1.GetOperationRequest.verify|verify} messages.
                 * @param message GetOperationRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IGetOperationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified GetOperationRequest message, length delimited. Does not implicitly {@link google.container.v1beta1.GetOperationRequest.verify|verify} messages.
                 * @param message GetOperationRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IGetOperationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a GetOperationRequest message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns GetOperationRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.GetOperationRequest;

                /**
                 * Decodes a GetOperationRequest message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns GetOperationRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.GetOperationRequest;

                /**
                 * Verifies a GetOperationRequest message.
                 * @param message Plain 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 GetOperationRequest message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns GetOperationRequest
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.GetOperationRequest;

                /**
                 * Creates a plain object from a GetOperationRequest message. Also converts values to other types if specified.
                 * @param message GetOperationRequest
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.GetOperationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this GetOperationRequest to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for GetOperationRequest
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a ListOperationsRequest. */
            interface IListOperationsRequest {

                /** ListOperationsRequest projectId */
                projectId?: (string|null);

                /** ListOperationsRequest zone */
                zone?: (string|null);

                /** ListOperationsRequest parent */
                parent?: (string|null);
            }

            /** Represents a ListOperationsRequest. */
            class ListOperationsRequest implements IListOperationsRequest {

                /**
                 * Constructs a new ListOperationsRequest.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IListOperationsRequest);

                /** ListOperationsRequest projectId. */
                public projectId: string;

                /** ListOperationsRequest zone. */
                public zone: string;

                /** ListOperationsRequest parent. */
                public parent: string;

                /**
                 * Creates a new ListOperationsRequest instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ListOperationsRequest instance
                 */
                public static create(properties?: google.container.v1beta1.IListOperationsRequest): google.container.v1beta1.ListOperationsRequest;

                /**
                 * Encodes the specified ListOperationsRequest message. Does not implicitly {@link google.container.v1beta1.ListOperationsRequest.verify|verify} messages.
                 * @param message ListOperationsRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IListOperationsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified ListOperationsRequest message, length delimited. Does not implicitly {@link google.container.v1beta1.ListOperationsRequest.verify|verify} messages.
                 * @param message ListOperationsRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IListOperationsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a ListOperationsRequest message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ListOperationsRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.ListOperationsRequest;

                /**
                 * Decodes a ListOperationsRequest message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ListOperationsRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.ListOperationsRequest;

                /**
                 * Verifies a ListOperationsRequest message.
                 * @param message Plain 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 ListOperationsRequest message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ListOperationsRequest
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.ListOperationsRequest;

                /**
                 * Creates a plain object from a ListOperationsRequest message. Also converts values to other types if specified.
                 * @param message ListOperationsRequest
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.ListOperationsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ListOperationsRequest to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for ListOperationsRequest
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a CancelOperationRequest. */
            interface ICancelOperationRequest {

                /** CancelOperationRequest projectId */
                projectId?: (string|null);

                /** CancelOperationRequest zone */
                zone?: (string|null);

                /** CancelOperationRequest operationId */
                operationId?: (string|null);

                /** CancelOperationRequest name */
                name?: (string|null);
            }

            /** Represents a CancelOperationRequest. */
            class CancelOperationRequest implements ICancelOperationRequest {

                /**
                 * Constructs a new CancelOperationRequest.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.ICancelOperationRequest);

                /** CancelOperationRequest projectId. */
                public projectId: string;

                /** CancelOperationRequest zone. */
                public zone: string;

                /** CancelOperationRequest operationId. */
                public operationId: string;

                /** CancelOperationRequest name. */
                public name: string;

                /**
                 * Creates a new CancelOperationRequest instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns CancelOperationRequest instance
                 */
                public static create(properties?: google.container.v1beta1.ICancelOperationRequest): google.container.v1beta1.CancelOperationRequest;

                /**
                 * Encodes the specified CancelOperationRequest message. Does not implicitly {@link google.container.v1beta1.CancelOperationRequest.verify|verify} messages.
                 * @param message CancelOperationRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.ICancelOperationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified CancelOperationRequest message, length delimited. Does not implicitly {@link google.container.v1beta1.CancelOperationRequest.verify|verify} messages.
                 * @param message CancelOperationRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.ICancelOperationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a CancelOperationRequest message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns CancelOperationRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.CancelOperationRequest;

                /**
                 * Decodes a CancelOperationRequest message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns CancelOperationRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.CancelOperationRequest;

                /**
                 * Verifies a CancelOperationRequest message.
                 * @param message Plain 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 CancelOperationRequest message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns CancelOperationRequest
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.CancelOperationRequest;

                /**
                 * Creates a plain object from a CancelOperationRequest message. Also converts values to other types if specified.
                 * @param message CancelOperationRequest
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.CancelOperationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this CancelOperationRequest to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for CancelOperationRequest
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a ListOperationsResponse. */
            interface IListOperationsResponse {

                /** ListOperationsResponse operations */
                operations?: (google.container.v1beta1.IOperation[]|null);

                /** ListOperationsResponse missingZones */
                missingZones?: (string[]|null);
            }

            /** Represents a ListOperationsResponse. */
            class ListOperationsResponse implements IListOperationsResponse {

                /**
                 * Constructs a new ListOperationsResponse.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IListOperationsResponse);

                /** ListOperationsResponse operations. */
                public operations: google.container.v1beta1.IOperation[];

                /** ListOperationsResponse missingZones. */
                public missingZones: string[];

                /**
                 * Creates a new ListOperationsResponse instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ListOperationsResponse instance
                 */
                public static create(properties?: google.container.v1beta1.IListOperationsResponse): google.container.v1beta1.ListOperationsResponse;

                /**
                 * Encodes the specified ListOperationsResponse message. Does not implicitly {@link google.container.v1beta1.ListOperationsResponse.verify|verify} messages.
                 * @param message ListOperationsResponse message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IListOperationsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified ListOperationsResponse message, length delimited. Does not implicitly {@link google.container.v1beta1.ListOperationsResponse.verify|verify} messages.
                 * @param message ListOperationsResponse message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IListOperationsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a ListOperationsResponse message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ListOperationsResponse
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.ListOperationsResponse;

                /**
                 * Decodes a ListOperationsResponse message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ListOperationsResponse
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.ListOperationsResponse;

                /**
                 * Verifies a ListOperationsResponse message.
                 * @param message Plain 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 ListOperationsResponse message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ListOperationsResponse
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.ListOperationsResponse;

                /**
                 * Creates a plain object from a ListOperationsResponse message. Also converts values to other types if specified.
                 * @param message ListOperationsResponse
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.ListOperationsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ListOperationsResponse to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for ListOperationsResponse
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a GetServerConfigRequest. */
            interface IGetServerConfigRequest {

                /** GetServerConfigRequest projectId */
                projectId?: (string|null);

                /** GetServerConfigRequest zone */
                zone?: (string|null);

                /** GetServerConfigRequest name */
                name?: (string|null);
            }

            /** Represents a GetServerConfigRequest. */
            class GetServerConfigRequest implements IGetServerConfigRequest {

                /**
                 * Constructs a new GetServerConfigRequest.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IGetServerConfigRequest);

                /** GetServerConfigRequest projectId. */
                public projectId: string;

                /** GetServerConfigRequest zone. */
                public zone: string;

                /** GetServerConfigRequest name. */
                public name: string;

                /**
                 * Creates a new GetServerConfigRequest instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns GetServerConfigRequest instance
                 */
                public static create(properties?: google.container.v1beta1.IGetServerConfigRequest): google.container.v1beta1.GetServerConfigRequest;

                /**
                 * Encodes the specified GetServerConfigRequest message. Does not implicitly {@link google.container.v1beta1.GetServerConfigRequest.verify|verify} messages.
                 * @param message GetServerConfigRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IGetServerConfigRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified GetServerConfigRequest message, length delimited. Does not implicitly {@link google.container.v1beta1.GetServerConfigRequest.verify|verify} messages.
                 * @param message GetServerConfigRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IGetServerConfigRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a GetServerConfigRequest message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns GetServerConfigRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.GetServerConfigRequest;

                /**
                 * Decodes a GetServerConfigRequest message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns GetServerConfigRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.GetServerConfigRequest;

                /**
                 * Verifies a GetServerConfigRequest message.
                 * @param message Plain 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 GetServerConfigRequest message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns GetServerConfigRequest
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.GetServerConfigRequest;

                /**
                 * Creates a plain object from a GetServerConfigRequest message. Also converts values to other types if specified.
                 * @param message GetServerConfigRequest
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.GetServerConfigRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this GetServerConfigRequest to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for GetServerConfigRequest
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a ServerConfig. */
            interface IServerConfig {

                /** ServerConfig defaultClusterVersion */
                defaultClusterVersion?: (string|null);

                /** ServerConfig validNodeVersions */
                validNodeVersions?: (string[]|null);

                /** ServerConfig defaultImageType */
                defaultImageType?: (string|null);

                /** ServerConfig validImageTypes */
                validImageTypes?: (string[]|null);

                /** ServerConfig validMasterVersions */
                validMasterVersions?: (string[]|null);

                /** ServerConfig channels */
                channels?: (google.container.v1beta1.ServerConfig.IReleaseChannelConfig[]|null);

                /** ServerConfig windowsVersionMaps */
                windowsVersionMaps?: ({ [k: string]: google.container.v1beta1.IWindowsVersions }|null);
            }

            /** Represents a ServerConfig. */
            class ServerConfig implements IServerConfig {

                /**
                 * Constructs a new ServerConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IServerConfig);

                /** ServerConfig defaultClusterVersion. */
                public defaultClusterVersion: string;

                /** ServerConfig validNodeVersions. */
                public validNodeVersions: string[];

                /** ServerConfig defaultImageType. */
                public defaultImageType: string;

                /** ServerConfig validImageTypes. */
                public validImageTypes: string[];

                /** ServerConfig validMasterVersions. */
                public validMasterVersions: string[];

                /** ServerConfig channels. */
                public channels: google.container.v1beta1.ServerConfig.IReleaseChannelConfig[];

                /** ServerConfig windowsVersionMaps. */
                public windowsVersionMaps: { [k: string]: google.container.v1beta1.IWindowsVersions };

                /**
                 * Creates a new ServerConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ServerConfig instance
                 */
                public static create(properties?: google.container.v1beta1.IServerConfig): google.container.v1beta1.ServerConfig;

                /**
                 * Encodes the specified ServerConfig message. Does not implicitly {@link google.container.v1beta1.ServerConfig.verify|verify} messages.
                 * @param message ServerConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IServerConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified ServerConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.ServerConfig.verify|verify} messages.
                 * @param message ServerConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IServerConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a ServerConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ServerConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.ServerConfig;

                /**
                 * Decodes a ServerConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ServerConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.ServerConfig;

                /**
                 * Verifies a ServerConfig message.
                 * @param message Plain 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 ServerConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ServerConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.ServerConfig;

                /**
                 * Creates a plain object from a ServerConfig message. Also converts values to other types if specified.
                 * @param message ServerConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.ServerConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ServerConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for ServerConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace ServerConfig {

                /** Properties of a ReleaseChannelConfig. */
                interface IReleaseChannelConfig {

                    /** ReleaseChannelConfig channel */
                    channel?: (google.container.v1beta1.ReleaseChannel.Channel|keyof typeof google.container.v1beta1.ReleaseChannel.Channel|null);

                    /** ReleaseChannelConfig defaultVersion */
                    defaultVersion?: (string|null);

                    /** ReleaseChannelConfig availableVersions */
                    availableVersions?: (google.container.v1beta1.ServerConfig.ReleaseChannelConfig.IAvailableVersion[]|null);

                    /** ReleaseChannelConfig validVersions */
                    validVersions?: (string[]|null);

                    /** ReleaseChannelConfig upgradeTargetVersion */
                    upgradeTargetVersion?: (string|null);
                }

                /** Represents a ReleaseChannelConfig. */
                class ReleaseChannelConfig implements IReleaseChannelConfig {

                    /**
                     * Constructs a new ReleaseChannelConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.container.v1beta1.ServerConfig.IReleaseChannelConfig);

                    /** ReleaseChannelConfig channel. */
                    public channel: (google.container.v1beta1.ReleaseChannel.Channel|keyof typeof google.container.v1beta1.ReleaseChannel.Channel);

                    /** ReleaseChannelConfig defaultVersion. */
                    public defaultVersion: string;

                    /** ReleaseChannelConfig availableVersions. */
                    public availableVersions: google.container.v1beta1.ServerConfig.ReleaseChannelConfig.IAvailableVersion[];

                    /** ReleaseChannelConfig validVersions. */
                    public validVersions: string[];

                    /** ReleaseChannelConfig upgradeTargetVersion. */
                    public upgradeTargetVersion: string;

                    /**
                     * Creates a new ReleaseChannelConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ReleaseChannelConfig instance
                     */
                    public static create(properties?: google.container.v1beta1.ServerConfig.IReleaseChannelConfig): google.container.v1beta1.ServerConfig.ReleaseChannelConfig;

                    /**
                     * Encodes the specified ReleaseChannelConfig message. Does not implicitly {@link google.container.v1beta1.ServerConfig.ReleaseChannelConfig.verify|verify} messages.
                     * @param message ReleaseChannelConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.container.v1beta1.ServerConfig.IReleaseChannelConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ReleaseChannelConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.ServerConfig.ReleaseChannelConfig.verify|verify} messages.
                     * @param message ReleaseChannelConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.container.v1beta1.ServerConfig.IReleaseChannelConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ReleaseChannelConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ReleaseChannelConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.ServerConfig.ReleaseChannelConfig;

                    /**
                     * Decodes a ReleaseChannelConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ReleaseChannelConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.ServerConfig.ReleaseChannelConfig;

                    /**
                     * Verifies a ReleaseChannelConfig message.
                     * @param message Plain 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 ReleaseChannelConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ReleaseChannelConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.container.v1beta1.ServerConfig.ReleaseChannelConfig;

                    /**
                     * Creates a plain object from a ReleaseChannelConfig message. Also converts values to other types if specified.
                     * @param message ReleaseChannelConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.container.v1beta1.ServerConfig.ReleaseChannelConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ReleaseChannelConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ReleaseChannelConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ReleaseChannelConfig {

                    /** Properties of an AvailableVersion. */
                    interface IAvailableVersion {

                        /** AvailableVersion version */
                        version?: (string|null);

                        /** AvailableVersion reason */
                        reason?: (string|null);
                    }

                    /** Represents an AvailableVersion. */
                    class AvailableVersion implements IAvailableVersion {

                        /**
                         * Constructs a new AvailableVersion.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.container.v1beta1.ServerConfig.ReleaseChannelConfig.IAvailableVersion);

                        /** AvailableVersion version. */
                        public version: string;

                        /** AvailableVersion reason. */
                        public reason: string;

                        /**
                         * Creates a new AvailableVersion instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns AvailableVersion instance
                         */
                        public static create(properties?: google.container.v1beta1.ServerConfig.ReleaseChannelConfig.IAvailableVersion): google.container.v1beta1.ServerConfig.ReleaseChannelConfig.AvailableVersion;

                        /**
                         * Encodes the specified AvailableVersion message. Does not implicitly {@link google.container.v1beta1.ServerConfig.ReleaseChannelConfig.AvailableVersion.verify|verify} messages.
                         * @param message AvailableVersion message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.container.v1beta1.ServerConfig.ReleaseChannelConfig.IAvailableVersion, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified AvailableVersion message, length delimited. Does not implicitly {@link google.container.v1beta1.ServerConfig.ReleaseChannelConfig.AvailableVersion.verify|verify} messages.
                         * @param message AvailableVersion message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.container.v1beta1.ServerConfig.ReleaseChannelConfig.IAvailableVersion, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes an AvailableVersion message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns AvailableVersion
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.ServerConfig.ReleaseChannelConfig.AvailableVersion;

                        /**
                         * Decodes an AvailableVersion message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns AvailableVersion
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.ServerConfig.ReleaseChannelConfig.AvailableVersion;

                        /**
                         * Verifies an AvailableVersion message.
                         * @param message Plain 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 AvailableVersion message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns AvailableVersion
                         */
                        public static fromObject(object: { [k: string]: any }): google.container.v1beta1.ServerConfig.ReleaseChannelConfig.AvailableVersion;

                        /**
                         * Creates a plain object from an AvailableVersion message. Also converts values to other types if specified.
                         * @param message AvailableVersion
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.container.v1beta1.ServerConfig.ReleaseChannelConfig.AvailableVersion, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this AvailableVersion to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for AvailableVersion
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }
                }
            }

            /** Properties of a BestEffortProvisioning. */
            interface IBestEffortProvisioning {

                /** BestEffortProvisioning enabled */
                enabled?: (boolean|null);

                /** BestEffortProvisioning minProvisionNodes */
                minProvisionNodes?: (number|null);
            }

            /** Represents a BestEffortProvisioning. */
            class BestEffortProvisioning implements IBestEffortProvisioning {

                /**
                 * Constructs a new BestEffortProvisioning.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IBestEffortProvisioning);

                /** BestEffortProvisioning enabled. */
                public enabled: boolean;

                /** BestEffortProvisioning minProvisionNodes. */
                public minProvisionNodes: number;

                /**
                 * Creates a new BestEffortProvisioning instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns BestEffortProvisioning instance
                 */
                public static create(properties?: google.container.v1beta1.IBestEffortProvisioning): google.container.v1beta1.BestEffortProvisioning;

                /**
                 * Encodes the specified BestEffortProvisioning message. Does not implicitly {@link google.container.v1beta1.BestEffortProvisioning.verify|verify} messages.
                 * @param message BestEffortProvisioning message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IBestEffortProvisioning, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified BestEffortProvisioning message, length delimited. Does not implicitly {@link google.container.v1beta1.BestEffortProvisioning.verify|verify} messages.
                 * @param message BestEffortProvisioning message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IBestEffortProvisioning, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a BestEffortProvisioning message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns BestEffortProvisioning
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.BestEffortProvisioning;

                /**
                 * Decodes a BestEffortProvisioning message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns BestEffortProvisioning
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.BestEffortProvisioning;

                /**
                 * Verifies a BestEffortProvisioning message.
                 * @param message Plain 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 BestEffortProvisioning message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns BestEffortProvisioning
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.BestEffortProvisioning;

                /**
                 * Creates a plain object from a BestEffortProvisioning message. Also converts values to other types if specified.
                 * @param message BestEffortProvisioning
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.BestEffortProvisioning, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this BestEffortProvisioning to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for BestEffortProvisioning
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a WindowsVersions. */
            interface IWindowsVersions {

                /** WindowsVersions windowsVersions */
                windowsVersions?: (google.container.v1beta1.WindowsVersions.IWindowsVersion[]|null);
            }

            /** Represents a WindowsVersions. */
            class WindowsVersions implements IWindowsVersions {

                /**
                 * Constructs a new WindowsVersions.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IWindowsVersions);

                /** WindowsVersions windowsVersions. */
                public windowsVersions: google.container.v1beta1.WindowsVersions.IWindowsVersion[];

                /**
                 * Creates a new WindowsVersions instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns WindowsVersions instance
                 */
                public static create(properties?: google.container.v1beta1.IWindowsVersions): google.container.v1beta1.WindowsVersions;

                /**
                 * Encodes the specified WindowsVersions message. Does not implicitly {@link google.container.v1beta1.WindowsVersions.verify|verify} messages.
                 * @param message WindowsVersions message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IWindowsVersions, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified WindowsVersions message, length delimited. Does not implicitly {@link google.container.v1beta1.WindowsVersions.verify|verify} messages.
                 * @param message WindowsVersions message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IWindowsVersions, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a WindowsVersions message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns WindowsVersions
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.WindowsVersions;

                /**
                 * Decodes a WindowsVersions message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns WindowsVersions
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.WindowsVersions;

                /**
                 * Verifies a WindowsVersions message.
                 * @param message Plain 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 WindowsVersions message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns WindowsVersions
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.WindowsVersions;

                /**
                 * Creates a plain object from a WindowsVersions message. Also converts values to other types if specified.
                 * @param message WindowsVersions
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.WindowsVersions, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this WindowsVersions to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for WindowsVersions
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace WindowsVersions {

                /** Properties of a WindowsVersion. */
                interface IWindowsVersion {

                    /** WindowsVersion imageType */
                    imageType?: (string|null);

                    /** WindowsVersion osVersion */
                    osVersion?: (string|null);

                    /** WindowsVersion supportEndDate */
                    supportEndDate?: (google.type.IDate|null);
                }

                /** Represents a WindowsVersion. */
                class WindowsVersion implements IWindowsVersion {

                    /**
                     * Constructs a new WindowsVersion.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.container.v1beta1.WindowsVersions.IWindowsVersion);

                    /** WindowsVersion imageType. */
                    public imageType: string;

                    /** WindowsVersion osVersion. */
                    public osVersion: string;

                    /** WindowsVersion supportEndDate. */
                    public supportEndDate?: (google.type.IDate|null);

                    /**
                     * Creates a new WindowsVersion instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns WindowsVersion instance
                     */
                    public static create(properties?: google.container.v1beta1.WindowsVersions.IWindowsVersion): google.container.v1beta1.WindowsVersions.WindowsVersion;

                    /**
                     * Encodes the specified WindowsVersion message. Does not implicitly {@link google.container.v1beta1.WindowsVersions.WindowsVersion.verify|verify} messages.
                     * @param message WindowsVersion message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.container.v1beta1.WindowsVersions.IWindowsVersion, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified WindowsVersion message, length delimited. Does not implicitly {@link google.container.v1beta1.WindowsVersions.WindowsVersion.verify|verify} messages.
                     * @param message WindowsVersion message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.container.v1beta1.WindowsVersions.IWindowsVersion, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a WindowsVersion message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns WindowsVersion
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.WindowsVersions.WindowsVersion;

                    /**
                     * Decodes a WindowsVersion message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns WindowsVersion
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.WindowsVersions.WindowsVersion;

                    /**
                     * Verifies a WindowsVersion message.
                     * @param message Plain 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 WindowsVersion message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns WindowsVersion
                     */
                    public static fromObject(object: { [k: string]: any }): google.container.v1beta1.WindowsVersions.WindowsVersion;

                    /**
                     * Creates a plain object from a WindowsVersion message. Also converts values to other types if specified.
                     * @param message WindowsVersion
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.container.v1beta1.WindowsVersions.WindowsVersion, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this WindowsVersion to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for WindowsVersion
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }
            }

            /** Properties of a CreateNodePoolRequest. */
            interface ICreateNodePoolRequest {

                /** CreateNodePoolRequest projectId */
                projectId?: (string|null);

                /** CreateNodePoolRequest zone */
                zone?: (string|null);

                /** CreateNodePoolRequest clusterId */
                clusterId?: (string|null);

                /** CreateNodePoolRequest nodePool */
                nodePool?: (google.container.v1beta1.INodePool|null);

                /** CreateNodePoolRequest parent */
                parent?: (string|null);
            }

            /** Represents a CreateNodePoolRequest. */
            class CreateNodePoolRequest implements ICreateNodePoolRequest {

                /**
                 * Constructs a new CreateNodePoolRequest.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.ICreateNodePoolRequest);

                /** CreateNodePoolRequest projectId. */
                public projectId: string;

                /** CreateNodePoolRequest zone. */
                public zone: string;

                /** CreateNodePoolRequest clusterId. */
                public clusterId: string;

                /** CreateNodePoolRequest nodePool. */
                public nodePool?: (google.container.v1beta1.INodePool|null);

                /** CreateNodePoolRequest parent. */
                public parent: string;

                /**
                 * Creates a new CreateNodePoolRequest instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns CreateNodePoolRequest instance
                 */
                public static create(properties?: google.container.v1beta1.ICreateNodePoolRequest): google.container.v1beta1.CreateNodePoolRequest;

                /**
                 * Encodes the specified CreateNodePoolRequest message. Does not implicitly {@link google.container.v1beta1.CreateNodePoolRequest.verify|verify} messages.
                 * @param message CreateNodePoolRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.ICreateNodePoolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified CreateNodePoolRequest message, length delimited. Does not implicitly {@link google.container.v1beta1.CreateNodePoolRequest.verify|verify} messages.
                 * @param message CreateNodePoolRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.ICreateNodePoolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a CreateNodePoolRequest message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns CreateNodePoolRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.CreateNodePoolRequest;

                /**
                 * Decodes a CreateNodePoolRequest message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns CreateNodePoolRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.CreateNodePoolRequest;

                /**
                 * Verifies a CreateNodePoolRequest message.
                 * @param message Plain 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 CreateNodePoolRequest message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns CreateNodePoolRequest
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.CreateNodePoolRequest;

                /**
                 * Creates a plain object from a CreateNodePoolRequest message. Also converts values to other types if specified.
                 * @param message CreateNodePoolRequest
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.CreateNodePoolRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this CreateNodePoolRequest to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for CreateNodePoolRequest
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a DeleteNodePoolRequest. */
            interface IDeleteNodePoolRequest {

                /** DeleteNodePoolRequest projectId */
                projectId?: (string|null);

                /** DeleteNodePoolRequest zone */
                zone?: (string|null);

                /** DeleteNodePoolRequest clusterId */
                clusterId?: (string|null);

                /** DeleteNodePoolRequest nodePoolId */
                nodePoolId?: (string|null);

                /** DeleteNodePoolRequest name */
                name?: (string|null);
            }

            /** Represents a DeleteNodePoolRequest. */
            class DeleteNodePoolRequest implements IDeleteNodePoolRequest {

                /**
                 * Constructs a new DeleteNodePoolRequest.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IDeleteNodePoolRequest);

                /** DeleteNodePoolRequest projectId. */
                public projectId: string;

                /** DeleteNodePoolRequest zone. */
                public zone: string;

                /** DeleteNodePoolRequest clusterId. */
                public clusterId: string;

                /** DeleteNodePoolRequest nodePoolId. */
                public nodePoolId: string;

                /** DeleteNodePoolRequest name. */
                public name: string;

                /**
                 * Creates a new DeleteNodePoolRequest instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns DeleteNodePoolRequest instance
                 */
                public static create(properties?: google.container.v1beta1.IDeleteNodePoolRequest): google.container.v1beta1.DeleteNodePoolRequest;

                /**
                 * Encodes the specified DeleteNodePoolRequest message. Does not implicitly {@link google.container.v1beta1.DeleteNodePoolRequest.verify|verify} messages.
                 * @param message DeleteNodePoolRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IDeleteNodePoolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified DeleteNodePoolRequest message, length delimited. Does not implicitly {@link google.container.v1beta1.DeleteNodePoolRequest.verify|verify} messages.
                 * @param message DeleteNodePoolRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IDeleteNodePoolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a DeleteNodePoolRequest message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns DeleteNodePoolRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.DeleteNodePoolRequest;

                /**
                 * Decodes a DeleteNodePoolRequest message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns DeleteNodePoolRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.DeleteNodePoolRequest;

                /**
                 * Verifies a DeleteNodePoolRequest message.
                 * @param message Plain 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 DeleteNodePoolRequest message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns DeleteNodePoolRequest
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.DeleteNodePoolRequest;

                /**
                 * Creates a plain object from a DeleteNodePoolRequest message. Also converts values to other types if specified.
                 * @param message DeleteNodePoolRequest
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.DeleteNodePoolRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this DeleteNodePoolRequest to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for DeleteNodePoolRequest
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a ListNodePoolsRequest. */
            interface IListNodePoolsRequest {

                /** ListNodePoolsRequest projectId */
                projectId?: (string|null);

                /** ListNodePoolsRequest zone */
                zone?: (string|null);

                /** ListNodePoolsRequest clusterId */
                clusterId?: (string|null);

                /** ListNodePoolsRequest parent */
                parent?: (string|null);
            }

            /** Represents a ListNodePoolsRequest. */
            class ListNodePoolsRequest implements IListNodePoolsRequest {

                /**
                 * Constructs a new ListNodePoolsRequest.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IListNodePoolsRequest);

                /** ListNodePoolsRequest projectId. */
                public projectId: string;

                /** ListNodePoolsRequest zone. */
                public zone: string;

                /** ListNodePoolsRequest clusterId. */
                public clusterId: string;

                /** ListNodePoolsRequest parent. */
                public parent: string;

                /**
                 * Creates a new ListNodePoolsRequest instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ListNodePoolsRequest instance
                 */
                public static create(properties?: google.container.v1beta1.IListNodePoolsRequest): google.container.v1beta1.ListNodePoolsRequest;

                /**
                 * Encodes the specified ListNodePoolsRequest message. Does not implicitly {@link google.container.v1beta1.ListNodePoolsRequest.verify|verify} messages.
                 * @param message ListNodePoolsRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IListNodePoolsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified ListNodePoolsRequest message, length delimited. Does not implicitly {@link google.container.v1beta1.ListNodePoolsRequest.verify|verify} messages.
                 * @param message ListNodePoolsRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IListNodePoolsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a ListNodePoolsRequest message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ListNodePoolsRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.ListNodePoolsRequest;

                /**
                 * Decodes a ListNodePoolsRequest message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ListNodePoolsRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.ListNodePoolsRequest;

                /**
                 * Verifies a ListNodePoolsRequest message.
                 * @param message Plain 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 ListNodePoolsRequest message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ListNodePoolsRequest
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.ListNodePoolsRequest;

                /**
                 * Creates a plain object from a ListNodePoolsRequest message. Also converts values to other types if specified.
                 * @param message ListNodePoolsRequest
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.ListNodePoolsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ListNodePoolsRequest to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for ListNodePoolsRequest
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a GetNodePoolRequest. */
            interface IGetNodePoolRequest {

                /** GetNodePoolRequest projectId */
                projectId?: (string|null);

                /** GetNodePoolRequest zone */
                zone?: (string|null);

                /** GetNodePoolRequest clusterId */
                clusterId?: (string|null);

                /** GetNodePoolRequest nodePoolId */
                nodePoolId?: (string|null);

                /** GetNodePoolRequest name */
                name?: (string|null);
            }

            /** Represents a GetNodePoolRequest. */
            class GetNodePoolRequest implements IGetNodePoolRequest {

                /**
                 * Constructs a new GetNodePoolRequest.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IGetNodePoolRequest);

                /** GetNodePoolRequest projectId. */
                public projectId: string;

                /** GetNodePoolRequest zone. */
                public zone: string;

                /** GetNodePoolRequest clusterId. */
                public clusterId: string;

                /** GetNodePoolRequest nodePoolId. */
                public nodePoolId: string;

                /** GetNodePoolRequest name. */
                public name: string;

                /**
                 * Creates a new GetNodePoolRequest instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns GetNodePoolRequest instance
                 */
                public static create(properties?: google.container.v1beta1.IGetNodePoolRequest): google.container.v1beta1.GetNodePoolRequest;

                /**
                 * Encodes the specified GetNodePoolRequest message. Does not implicitly {@link google.container.v1beta1.GetNodePoolRequest.verify|verify} messages.
                 * @param message GetNodePoolRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IGetNodePoolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified GetNodePoolRequest message, length delimited. Does not implicitly {@link google.container.v1beta1.GetNodePoolRequest.verify|verify} messages.
                 * @param message GetNodePoolRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IGetNodePoolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a GetNodePoolRequest message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns GetNodePoolRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.GetNodePoolRequest;

                /**
                 * Decodes a GetNodePoolRequest message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns GetNodePoolRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.GetNodePoolRequest;

                /**
                 * Verifies a GetNodePoolRequest message.
                 * @param message Plain 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 GetNodePoolRequest message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns GetNodePoolRequest
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.GetNodePoolRequest;

                /**
                 * Creates a plain object from a GetNodePoolRequest message. Also converts values to other types if specified.
                 * @param message GetNodePoolRequest
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.GetNodePoolRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this GetNodePoolRequest to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for GetNodePoolRequest
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a BlueGreenSettings. */
            interface IBlueGreenSettings {

                /** BlueGreenSettings standardRolloutPolicy */
                standardRolloutPolicy?: (google.container.v1beta1.BlueGreenSettings.IStandardRolloutPolicy|null);

                /** BlueGreenSettings autoscaledRolloutPolicy */
                autoscaledRolloutPolicy?: (google.container.v1beta1.BlueGreenSettings.IAutoscaledRolloutPolicy|null);

                /** BlueGreenSettings nodePoolSoakDuration */
                nodePoolSoakDuration?: (google.protobuf.IDuration|null);
            }

            /** Represents a BlueGreenSettings. */
            class BlueGreenSettings implements IBlueGreenSettings {

                /**
                 * Constructs a new BlueGreenSettings.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IBlueGreenSettings);

                /** BlueGreenSettings standardRolloutPolicy. */
                public standardRolloutPolicy?: (google.container.v1beta1.BlueGreenSettings.IStandardRolloutPolicy|null);

                /** BlueGreenSettings autoscaledRolloutPolicy. */
                public autoscaledRolloutPolicy?: (google.container.v1beta1.BlueGreenSettings.IAutoscaledRolloutPolicy|null);

                /** BlueGreenSettings nodePoolSoakDuration. */
                public nodePoolSoakDuration?: (google.protobuf.IDuration|null);

                /** BlueGreenSettings rolloutPolicy. */
                public rolloutPolicy?: ("standardRolloutPolicy"|"autoscaledRolloutPolicy");

                /**
                 * Creates a new BlueGreenSettings instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns BlueGreenSettings instance
                 */
                public static create(properties?: google.container.v1beta1.IBlueGreenSettings): google.container.v1beta1.BlueGreenSettings;

                /**
                 * Encodes the specified BlueGreenSettings message. Does not implicitly {@link google.container.v1beta1.BlueGreenSettings.verify|verify} messages.
                 * @param message BlueGreenSettings message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IBlueGreenSettings, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified BlueGreenSettings message, length delimited. Does not implicitly {@link google.container.v1beta1.BlueGreenSettings.verify|verify} messages.
                 * @param message BlueGreenSettings message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IBlueGreenSettings, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a BlueGreenSettings message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns BlueGreenSettings
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.BlueGreenSettings;

                /**
                 * Decodes a BlueGreenSettings message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns BlueGreenSettings
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.BlueGreenSettings;

                /**
                 * Verifies a BlueGreenSettings message.
                 * @param message Plain 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 BlueGreenSettings message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns BlueGreenSettings
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.BlueGreenSettings;

                /**
                 * Creates a plain object from a BlueGreenSettings message. Also converts values to other types if specified.
                 * @param message BlueGreenSettings
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.BlueGreenSettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this BlueGreenSettings to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for BlueGreenSettings
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace BlueGreenSettings {

                /** Properties of a StandardRolloutPolicy. */
                interface IStandardRolloutPolicy {

                    /** StandardRolloutPolicy batchPercentage */
                    batchPercentage?: (number|null);

                    /** StandardRolloutPolicy batchNodeCount */
                    batchNodeCount?: (number|null);

                    /** StandardRolloutPolicy batchSoakDuration */
                    batchSoakDuration?: (google.protobuf.IDuration|null);
                }

                /** Represents a StandardRolloutPolicy. */
                class StandardRolloutPolicy implements IStandardRolloutPolicy {

                    /**
                     * Constructs a new StandardRolloutPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.container.v1beta1.BlueGreenSettings.IStandardRolloutPolicy);

                    /** StandardRolloutPolicy batchPercentage. */
                    public batchPercentage?: (number|null);

                    /** StandardRolloutPolicy batchNodeCount. */
                    public batchNodeCount?: (number|null);

                    /** StandardRolloutPolicy batchSoakDuration. */
                    public batchSoakDuration?: (google.protobuf.IDuration|null);

                    /** StandardRolloutPolicy updateBatchSize. */
                    public updateBatchSize?: ("batchPercentage"|"batchNodeCount");

                    /**
                     * Creates a new StandardRolloutPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns StandardRolloutPolicy instance
                     */
                    public static create(properties?: google.container.v1beta1.BlueGreenSettings.IStandardRolloutPolicy): google.container.v1beta1.BlueGreenSettings.StandardRolloutPolicy;

                    /**
                     * Encodes the specified StandardRolloutPolicy message. Does not implicitly {@link google.container.v1beta1.BlueGreenSettings.StandardRolloutPolicy.verify|verify} messages.
                     * @param message StandardRolloutPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.container.v1beta1.BlueGreenSettings.IStandardRolloutPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified StandardRolloutPolicy message, length delimited. Does not implicitly {@link google.container.v1beta1.BlueGreenSettings.StandardRolloutPolicy.verify|verify} messages.
                     * @param message StandardRolloutPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.container.v1beta1.BlueGreenSettings.IStandardRolloutPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a StandardRolloutPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns StandardRolloutPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.BlueGreenSettings.StandardRolloutPolicy;

                    /**
                     * Decodes a StandardRolloutPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns StandardRolloutPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.BlueGreenSettings.StandardRolloutPolicy;

                    /**
                     * Verifies a StandardRolloutPolicy message.
                     * @param message Plain 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 StandardRolloutPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns StandardRolloutPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.container.v1beta1.BlueGreenSettings.StandardRolloutPolicy;

                    /**
                     * Creates a plain object from a StandardRolloutPolicy message. Also converts values to other types if specified.
                     * @param message StandardRolloutPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.container.v1beta1.BlueGreenSettings.StandardRolloutPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this StandardRolloutPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for StandardRolloutPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AutoscaledRolloutPolicy. */
                interface IAutoscaledRolloutPolicy {

                    /** AutoscaledRolloutPolicy waitForDrainDuration */
                    waitForDrainDuration?: (google.protobuf.IDuration|null);
                }

                /** Represents an AutoscaledRolloutPolicy. */
                class AutoscaledRolloutPolicy implements IAutoscaledRolloutPolicy {

                    /**
                     * Constructs a new AutoscaledRolloutPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.container.v1beta1.BlueGreenSettings.IAutoscaledRolloutPolicy);

                    /** AutoscaledRolloutPolicy waitForDrainDuration. */
                    public waitForDrainDuration?: (google.protobuf.IDuration|null);

                    /**
                     * Creates a new AutoscaledRolloutPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AutoscaledRolloutPolicy instance
                     */
                    public static create(properties?: google.container.v1beta1.BlueGreenSettings.IAutoscaledRolloutPolicy): google.container.v1beta1.BlueGreenSettings.AutoscaledRolloutPolicy;

                    /**
                     * Encodes the specified AutoscaledRolloutPolicy message. Does not implicitly {@link google.container.v1beta1.BlueGreenSettings.AutoscaledRolloutPolicy.verify|verify} messages.
                     * @param message AutoscaledRolloutPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.container.v1beta1.BlueGreenSettings.IAutoscaledRolloutPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AutoscaledRolloutPolicy message, length delimited. Does not implicitly {@link google.container.v1beta1.BlueGreenSettings.AutoscaledRolloutPolicy.verify|verify} messages.
                     * @param message AutoscaledRolloutPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.container.v1beta1.BlueGreenSettings.IAutoscaledRolloutPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AutoscaledRolloutPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AutoscaledRolloutPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.BlueGreenSettings.AutoscaledRolloutPolicy;

                    /**
                     * Decodes an AutoscaledRolloutPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AutoscaledRolloutPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.BlueGreenSettings.AutoscaledRolloutPolicy;

                    /**
                     * Verifies an AutoscaledRolloutPolicy message.
                     * @param message Plain 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 AutoscaledRolloutPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AutoscaledRolloutPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.container.v1beta1.BlueGreenSettings.AutoscaledRolloutPolicy;

                    /**
                     * Creates a plain object from an AutoscaledRolloutPolicy message. Also converts values to other types if specified.
                     * @param message AutoscaledRolloutPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.container.v1beta1.BlueGreenSettings.AutoscaledRolloutPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AutoscaledRolloutPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AutoscaledRolloutPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }
            }

            /** Properties of a NodePool. */
            interface INodePool {

                /** NodePool name */
                name?: (string|null);

                /** NodePool config */
                config?: (google.container.v1beta1.INodeConfig|null);

                /** NodePool initialNodeCount */
                initialNodeCount?: (number|null);

                /** NodePool locations */
                locations?: (string[]|null);

                /** NodePool networkConfig */
                networkConfig?: (google.container.v1beta1.INodeNetworkConfig|null);

                /** NodePool selfLink */
                selfLink?: (string|null);

                /** NodePool version */
                version?: (string|null);

                /** NodePool instanceGroupUrls */
                instanceGroupUrls?: (string[]|null);

                /** NodePool status */
                status?: (google.container.v1beta1.NodePool.Status|keyof typeof google.container.v1beta1.NodePool.Status|null);

                /** NodePool statusMessage */
                statusMessage?: (string|null);

                /** NodePool autoscaling */
                autoscaling?: (google.container.v1beta1.INodePoolAutoscaling|null);

                /** NodePool management */
                management?: (google.container.v1beta1.INodeManagement|null);

                /** NodePool maxPodsConstraint */
                maxPodsConstraint?: (google.container.v1beta1.IMaxPodsConstraint|null);

                /** NodePool conditions */
                conditions?: (google.container.v1beta1.IStatusCondition[]|null);

                /** NodePool podIpv4CidrSize */
                podIpv4CidrSize?: (number|null);

                /** NodePool upgradeSettings */
                upgradeSettings?: (google.container.v1beta1.NodePool.IUpgradeSettings|null);

                /** NodePool placementPolicy */
                placementPolicy?: (google.container.v1beta1.NodePool.IPlacementPolicy|null);

                /** NodePool updateInfo */
                updateInfo?: (google.container.v1beta1.NodePool.IUpdateInfo|null);

                /** NodePool etag */
                etag?: (string|null);

                /** NodePool queuedProvisioning */
                queuedProvisioning?: (google.container.v1beta1.NodePool.IQueuedProvisioning|null);

                /** NodePool bestEffortProvisioning */
                bestEffortProvisioning?: (google.container.v1beta1.IBestEffortProvisioning|null);

                /** NodePool nodeDrainConfig */
                nodeDrainConfig?: (google.container.v1beta1.NodePool.INodeDrainConfig|null);

                /** NodePool maintenancePolicy */
                maintenancePolicy?: (google.container.v1beta1.NodePool.INodePoolMaintenancePolicy|null);
            }

            /** Represents a NodePool. */
            class NodePool implements INodePool {

                /**
                 * Constructs a new NodePool.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.INodePool);

                /** NodePool name. */
                public name: string;

                /** NodePool config. */
                public config?: (google.container.v1beta1.INodeConfig|null);

                /** NodePool initialNodeCount. */
                public initialNodeCount: number;

                /** NodePool locations. */
                public locations: string[];

                /** NodePool networkConfig. */
                public networkConfig?: (google.container.v1beta1.INodeNetworkConfig|null);

                /** NodePool selfLink. */
                public selfLink: string;

                /** NodePool version. */
                public version: string;

                /** NodePool instanceGroupUrls. */
                public instanceGroupUrls: string[];

                /** NodePool status. */
                public status: (google.container.v1beta1.NodePool.Status|keyof typeof google.container.v1beta1.NodePool.Status);

                /** NodePool statusMessage. */
                public statusMessage: string;

                /** NodePool autoscaling. */
                public autoscaling?: (google.container.v1beta1.INodePoolAutoscaling|null);

                /** NodePool management. */
                public management?: (google.container.v1beta1.INodeManagement|null);

                /** NodePool maxPodsConstraint. */
                public maxPodsConstraint?: (google.container.v1beta1.IMaxPodsConstraint|null);

                /** NodePool conditions. */
                public conditions: google.container.v1beta1.IStatusCondition[];

                /** NodePool podIpv4CidrSize. */
                public podIpv4CidrSize: number;

                /** NodePool upgradeSettings. */
                public upgradeSettings?: (google.container.v1beta1.NodePool.IUpgradeSettings|null);

                /** NodePool placementPolicy. */
                public placementPolicy?: (google.container.v1beta1.NodePool.IPlacementPolicy|null);

                /** NodePool updateInfo. */
                public updateInfo?: (google.container.v1beta1.NodePool.IUpdateInfo|null);

                /** NodePool etag. */
                public etag: string;

                /** NodePool queuedProvisioning. */
                public queuedProvisioning?: (google.container.v1beta1.NodePool.IQueuedProvisioning|null);

                /** NodePool bestEffortProvisioning. */
                public bestEffortProvisioning?: (google.container.v1beta1.IBestEffortProvisioning|null);

                /** NodePool nodeDrainConfig. */
                public nodeDrainConfig?: (google.container.v1beta1.NodePool.INodeDrainConfig|null);

                /** NodePool maintenancePolicy. */
                public maintenancePolicy?: (google.container.v1beta1.NodePool.INodePoolMaintenancePolicy|null);

                /**
                 * Creates a new NodePool instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns NodePool instance
                 */
                public static create(properties?: google.container.v1beta1.INodePool): google.container.v1beta1.NodePool;

                /**
                 * Encodes the specified NodePool message. Does not implicitly {@link google.container.v1beta1.NodePool.verify|verify} messages.
                 * @param message NodePool message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.INodePool, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified NodePool message, length delimited. Does not implicitly {@link google.container.v1beta1.NodePool.verify|verify} messages.
                 * @param message NodePool message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.INodePool, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a NodePool message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns NodePool
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.NodePool;

                /**
                 * Decodes a NodePool message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns NodePool
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.NodePool;

                /**
                 * Verifies a NodePool message.
                 * @param message Plain 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 NodePool message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns NodePool
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.NodePool;

                /**
                 * Creates a plain object from a NodePool message. Also converts values to other types if specified.
                 * @param message NodePool
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.NodePool, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this NodePool to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for NodePool
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace NodePool {

                /** Properties of an UpgradeSettings. */
                interface IUpgradeSettings {

                    /** UpgradeSettings maxSurge */
                    maxSurge?: (number|null);

                    /** UpgradeSettings maxUnavailable */
                    maxUnavailable?: (number|null);

                    /** UpgradeSettings strategy */
                    strategy?: (google.container.v1beta1.NodePoolUpdateStrategy|keyof typeof google.container.v1beta1.NodePoolUpdateStrategy|null);

                    /** UpgradeSettings blueGreenSettings */
                    blueGreenSettings?: (google.container.v1beta1.IBlueGreenSettings|null);
                }

                /** Represents an UpgradeSettings. */
                class UpgradeSettings implements IUpgradeSettings {

                    /**
                     * Constructs a new UpgradeSettings.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.container.v1beta1.NodePool.IUpgradeSettings);

                    /** UpgradeSettings maxSurge. */
                    public maxSurge: number;

                    /** UpgradeSettings maxUnavailable. */
                    public maxUnavailable: number;

                    /** UpgradeSettings strategy. */
                    public strategy?: (google.container.v1beta1.NodePoolUpdateStrategy|keyof typeof google.container.v1beta1.NodePoolUpdateStrategy|null);

                    /** UpgradeSettings blueGreenSettings. */
                    public blueGreenSettings?: (google.container.v1beta1.IBlueGreenSettings|null);

                    /**
                     * Creates a new UpgradeSettings instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpgradeSettings instance
                     */
                    public static create(properties?: google.container.v1beta1.NodePool.IUpgradeSettings): google.container.v1beta1.NodePool.UpgradeSettings;

                    /**
                     * Encodes the specified UpgradeSettings message. Does not implicitly {@link google.container.v1beta1.NodePool.UpgradeSettings.verify|verify} messages.
                     * @param message UpgradeSettings message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.container.v1beta1.NodePool.IUpgradeSettings, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpgradeSettings message, length delimited. Does not implicitly {@link google.container.v1beta1.NodePool.UpgradeSettings.verify|verify} messages.
                     * @param message UpgradeSettings message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.container.v1beta1.NodePool.IUpgradeSettings, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpgradeSettings message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpgradeSettings
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.NodePool.UpgradeSettings;

                    /**
                     * Decodes an UpgradeSettings message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpgradeSettings
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.NodePool.UpgradeSettings;

                    /**
                     * Verifies an UpgradeSettings message.
                     * @param message Plain 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 UpgradeSettings message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpgradeSettings
                     */
                    public static fromObject(object: { [k: string]: any }): google.container.v1beta1.NodePool.UpgradeSettings;

                    /**
                     * Creates a plain object from an UpgradeSettings message. Also converts values to other types if specified.
                     * @param message UpgradeSettings
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.container.v1beta1.NodePool.UpgradeSettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpgradeSettings to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpgradeSettings
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateInfo. */
                interface IUpdateInfo {

                    /** UpdateInfo blueGreenInfo */
                    blueGreenInfo?: (google.container.v1beta1.NodePool.UpdateInfo.IBlueGreenInfo|null);
                }

                /** Represents an UpdateInfo. */
                class UpdateInfo implements IUpdateInfo {

                    /**
                     * Constructs a new UpdateInfo.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.container.v1beta1.NodePool.IUpdateInfo);

                    /** UpdateInfo blueGreenInfo. */
                    public blueGreenInfo?: (google.container.v1beta1.NodePool.UpdateInfo.IBlueGreenInfo|null);

                    /**
                     * Creates a new UpdateInfo instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateInfo instance
                     */
                    public static create(properties?: google.container.v1beta1.NodePool.IUpdateInfo): google.container.v1beta1.NodePool.UpdateInfo;

                    /**
                     * Encodes the specified UpdateInfo message. Does not implicitly {@link google.container.v1beta1.NodePool.UpdateInfo.verify|verify} messages.
                     * @param message UpdateInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.container.v1beta1.NodePool.IUpdateInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateInfo message, length delimited. Does not implicitly {@link google.container.v1beta1.NodePool.UpdateInfo.verify|verify} messages.
                     * @param message UpdateInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.container.v1beta1.NodePool.IUpdateInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateInfo message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.NodePool.UpdateInfo;

                    /**
                     * Decodes an UpdateInfo message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.NodePool.UpdateInfo;

                    /**
                     * Verifies an UpdateInfo message.
                     * @param message Plain 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 UpdateInfo message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateInfo
                     */
                    public static fromObject(object: { [k: string]: any }): google.container.v1beta1.NodePool.UpdateInfo;

                    /**
                     * Creates a plain object from an UpdateInfo message. Also converts values to other types if specified.
                     * @param message UpdateInfo
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.container.v1beta1.NodePool.UpdateInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateInfo to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateInfo
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace UpdateInfo {

                    /** Properties of a BlueGreenInfo. */
                    interface IBlueGreenInfo {

                        /** BlueGreenInfo phase */
                        phase?: (google.container.v1beta1.NodePool.UpdateInfo.BlueGreenInfo.Phase|keyof typeof google.container.v1beta1.NodePool.UpdateInfo.BlueGreenInfo.Phase|null);

                        /** BlueGreenInfo blueInstanceGroupUrls */
                        blueInstanceGroupUrls?: (string[]|null);

                        /** BlueGreenInfo greenInstanceGroupUrls */
                        greenInstanceGroupUrls?: (string[]|null);

                        /** BlueGreenInfo bluePoolDeletionStartTime */
                        bluePoolDeletionStartTime?: (string|null);

                        /** BlueGreenInfo greenPoolVersion */
                        greenPoolVersion?: (string|null);
                    }

                    /** Represents a BlueGreenInfo. */
                    class BlueGreenInfo implements IBlueGreenInfo {

                        /**
                         * Constructs a new BlueGreenInfo.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.container.v1beta1.NodePool.UpdateInfo.IBlueGreenInfo);

                        /** BlueGreenInfo phase. */
                        public phase: (google.container.v1beta1.NodePool.UpdateInfo.BlueGreenInfo.Phase|keyof typeof google.container.v1beta1.NodePool.UpdateInfo.BlueGreenInfo.Phase);

                        /** BlueGreenInfo blueInstanceGroupUrls. */
                        public blueInstanceGroupUrls: string[];

                        /** BlueGreenInfo greenInstanceGroupUrls. */
                        public greenInstanceGroupUrls: string[];

                        /** BlueGreenInfo bluePoolDeletionStartTime. */
                        public bluePoolDeletionStartTime: string;

                        /** BlueGreenInfo greenPoolVersion. */
                        public greenPoolVersion: string;

                        /**
                         * Creates a new BlueGreenInfo instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns BlueGreenInfo instance
                         */
                        public static create(properties?: google.container.v1beta1.NodePool.UpdateInfo.IBlueGreenInfo): google.container.v1beta1.NodePool.UpdateInfo.BlueGreenInfo;

                        /**
                         * Encodes the specified BlueGreenInfo message. Does not implicitly {@link google.container.v1beta1.NodePool.UpdateInfo.BlueGreenInfo.verify|verify} messages.
                         * @param message BlueGreenInfo message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.container.v1beta1.NodePool.UpdateInfo.IBlueGreenInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified BlueGreenInfo message, length delimited. Does not implicitly {@link google.container.v1beta1.NodePool.UpdateInfo.BlueGreenInfo.verify|verify} messages.
                         * @param message BlueGreenInfo message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.container.v1beta1.NodePool.UpdateInfo.IBlueGreenInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a BlueGreenInfo message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns BlueGreenInfo
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.NodePool.UpdateInfo.BlueGreenInfo;

                        /**
                         * Decodes a BlueGreenInfo message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns BlueGreenInfo
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.NodePool.UpdateInfo.BlueGreenInfo;

                        /**
                         * Verifies a BlueGreenInfo message.
                         * @param message Plain 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 BlueGreenInfo message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns BlueGreenInfo
                         */
                        public static fromObject(object: { [k: string]: any }): google.container.v1beta1.NodePool.UpdateInfo.BlueGreenInfo;

                        /**
                         * Creates a plain object from a BlueGreenInfo message. Also converts values to other types if specified.
                         * @param message BlueGreenInfo
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.container.v1beta1.NodePool.UpdateInfo.BlueGreenInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this BlueGreenInfo to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for BlueGreenInfo
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    namespace BlueGreenInfo {

                        /** Phase enum. */
                        enum Phase {
                            PHASE_UNSPECIFIED = 0,
                            UPDATE_STARTED = 1,
                            CREATING_GREEN_POOL = 2,
                            CORDONING_BLUE_POOL = 3,
                            WAITING_TO_DRAIN_BLUE_POOL = 8,
                            DRAINING_BLUE_POOL = 4,
                            NODE_POOL_SOAKING = 5,
                            DELETING_BLUE_POOL = 6,
                            ROLLBACK_STARTED = 7
                        }
                    }
                }

                /** Status enum. */
                enum Status {
                    STATUS_UNSPECIFIED = 0,
                    PROVISIONING = 1,
                    RUNNING = 2,
                    RUNNING_WITH_ERROR = 3,
                    RECONCILING = 4,
                    STOPPING = 5,
                    ERROR = 6
                }

                /** Properties of a PlacementPolicy. */
                interface IPlacementPolicy {

                    /** PlacementPolicy type */
                    type?: (google.container.v1beta1.NodePool.PlacementPolicy.Type|keyof typeof google.container.v1beta1.NodePool.PlacementPolicy.Type|null);

                    /** PlacementPolicy tpuTopology */
                    tpuTopology?: (string|null);

                    /** PlacementPolicy policyName */
                    policyName?: (string|null);
                }

                /** Represents a PlacementPolicy. */
                class PlacementPolicy implements IPlacementPolicy {

                    /**
                     * Constructs a new PlacementPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.container.v1beta1.NodePool.IPlacementPolicy);

                    /** PlacementPolicy type. */
                    public type: (google.container.v1beta1.NodePool.PlacementPolicy.Type|keyof typeof google.container.v1beta1.NodePool.PlacementPolicy.Type);

                    /** PlacementPolicy tpuTopology. */
                    public tpuTopology: string;

                    /** PlacementPolicy policyName. */
                    public policyName: string;

                    /**
                     * Creates a new PlacementPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PlacementPolicy instance
                     */
                    public static create(properties?: google.container.v1beta1.NodePool.IPlacementPolicy): google.container.v1beta1.NodePool.PlacementPolicy;

                    /**
                     * Encodes the specified PlacementPolicy message. Does not implicitly {@link google.container.v1beta1.NodePool.PlacementPolicy.verify|verify} messages.
                     * @param message PlacementPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.container.v1beta1.NodePool.IPlacementPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PlacementPolicy message, length delimited. Does not implicitly {@link google.container.v1beta1.NodePool.PlacementPolicy.verify|verify} messages.
                     * @param message PlacementPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.container.v1beta1.NodePool.IPlacementPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PlacementPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PlacementPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.NodePool.PlacementPolicy;

                    /**
                     * Decodes a PlacementPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PlacementPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.NodePool.PlacementPolicy;

                    /**
                     * Verifies a PlacementPolicy message.
                     * @param message Plain 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 PlacementPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PlacementPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.container.v1beta1.NodePool.PlacementPolicy;

                    /**
                     * Creates a plain object from a PlacementPolicy message. Also converts values to other types if specified.
                     * @param message PlacementPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.container.v1beta1.NodePool.PlacementPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PlacementPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PlacementPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace PlacementPolicy {

                    /** Type enum. */
                    enum Type {
                        TYPE_UNSPECIFIED = 0,
                        COMPACT = 1
                    }
                }

                /** Properties of a QueuedProvisioning. */
                interface IQueuedProvisioning {

                    /** QueuedProvisioning enabled */
                    enabled?: (boolean|null);
                }

                /** Represents a QueuedProvisioning. */
                class QueuedProvisioning implements IQueuedProvisioning {

                    /**
                     * Constructs a new QueuedProvisioning.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.container.v1beta1.NodePool.IQueuedProvisioning);

                    /** QueuedProvisioning enabled. */
                    public enabled: boolean;

                    /**
                     * Creates a new QueuedProvisioning instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns QueuedProvisioning instance
                     */
                    public static create(properties?: google.container.v1beta1.NodePool.IQueuedProvisioning): google.container.v1beta1.NodePool.QueuedProvisioning;

                    /**
                     * Encodes the specified QueuedProvisioning message. Does not implicitly {@link google.container.v1beta1.NodePool.QueuedProvisioning.verify|verify} messages.
                     * @param message QueuedProvisioning message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.container.v1beta1.NodePool.IQueuedProvisioning, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified QueuedProvisioning message, length delimited. Does not implicitly {@link google.container.v1beta1.NodePool.QueuedProvisioning.verify|verify} messages.
                     * @param message QueuedProvisioning message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.container.v1beta1.NodePool.IQueuedProvisioning, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a QueuedProvisioning message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns QueuedProvisioning
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.NodePool.QueuedProvisioning;

                    /**
                     * Decodes a QueuedProvisioning message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns QueuedProvisioning
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.NodePool.QueuedProvisioning;

                    /**
                     * Verifies a QueuedProvisioning message.
                     * @param message Plain 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 QueuedProvisioning message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns QueuedProvisioning
                     */
                    public static fromObject(object: { [k: string]: any }): google.container.v1beta1.NodePool.QueuedProvisioning;

                    /**
                     * Creates a plain object from a QueuedProvisioning message. Also converts values to other types if specified.
                     * @param message QueuedProvisioning
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.container.v1beta1.NodePool.QueuedProvisioning, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this QueuedProvisioning to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for QueuedProvisioning
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NodeDrainConfig. */
                interface INodeDrainConfig {

                    /** NodeDrainConfig pdbTimeoutDuration */
                    pdbTimeoutDuration?: (google.protobuf.IDuration|null);

                    /** NodeDrainConfig graceTerminationDuration */
                    graceTerminationDuration?: (google.protobuf.IDuration|null);

                    /** NodeDrainConfig respectPdbDuringNodePoolDeletion */
                    respectPdbDuringNodePoolDeletion?: (boolean|null);
                }

                /** Represents a NodeDrainConfig. */
                class NodeDrainConfig implements INodeDrainConfig {

                    /**
                     * Constructs a new NodeDrainConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.container.v1beta1.NodePool.INodeDrainConfig);

                    /** NodeDrainConfig pdbTimeoutDuration. */
                    public pdbTimeoutDuration?: (google.protobuf.IDuration|null);

                    /** NodeDrainConfig graceTerminationDuration. */
                    public graceTerminationDuration?: (google.protobuf.IDuration|null);

                    /** NodeDrainConfig respectPdbDuringNodePoolDeletion. */
                    public respectPdbDuringNodePoolDeletion?: (boolean|null);

                    /**
                     * Creates a new NodeDrainConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NodeDrainConfig instance
                     */
                    public static create(properties?: google.container.v1beta1.NodePool.INodeDrainConfig): google.container.v1beta1.NodePool.NodeDrainConfig;

                    /**
                     * Encodes the specified NodeDrainConfig message. Does not implicitly {@link google.container.v1beta1.NodePool.NodeDrainConfig.verify|verify} messages.
                     * @param message NodeDrainConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.container.v1beta1.NodePool.INodeDrainConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NodeDrainConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.NodePool.NodeDrainConfig.verify|verify} messages.
                     * @param message NodeDrainConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.container.v1beta1.NodePool.INodeDrainConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NodeDrainConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NodeDrainConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.NodePool.NodeDrainConfig;

                    /**
                     * Decodes a NodeDrainConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NodeDrainConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.NodePool.NodeDrainConfig;

                    /**
                     * Verifies a NodeDrainConfig message.
                     * @param message Plain 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 NodeDrainConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NodeDrainConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.container.v1beta1.NodePool.NodeDrainConfig;

                    /**
                     * Creates a plain object from a NodeDrainConfig message. Also converts values to other types if specified.
                     * @param message NodeDrainConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.container.v1beta1.NodePool.NodeDrainConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NodeDrainConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NodeDrainConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an ExclusionUntilEndOfSupport. */
                interface IExclusionUntilEndOfSupport {

                    /** ExclusionUntilEndOfSupport enabled */
                    enabled?: (boolean|null);

                    /** ExclusionUntilEndOfSupport startTime */
                    startTime?: (google.protobuf.ITimestamp|null);

                    /** ExclusionUntilEndOfSupport endTime */
                    endTime?: (google.protobuf.ITimestamp|null);
                }

                /** Represents an ExclusionUntilEndOfSupport. */
                class ExclusionUntilEndOfSupport implements IExclusionUntilEndOfSupport {

                    /**
                     * Constructs a new ExclusionUntilEndOfSupport.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.container.v1beta1.NodePool.IExclusionUntilEndOfSupport);

                    /** ExclusionUntilEndOfSupport enabled. */
                    public enabled: boolean;

                    /** ExclusionUntilEndOfSupport startTime. */
                    public startTime?: (google.protobuf.ITimestamp|null);

                    /** ExclusionUntilEndOfSupport endTime. */
                    public endTime?: (google.protobuf.ITimestamp|null);

                    /**
                     * Creates a new ExclusionUntilEndOfSupport instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ExclusionUntilEndOfSupport instance
                     */
                    public static create(properties?: google.container.v1beta1.NodePool.IExclusionUntilEndOfSupport): google.container.v1beta1.NodePool.ExclusionUntilEndOfSupport;

                    /**
                     * Encodes the specified ExclusionUntilEndOfSupport message. Does not implicitly {@link google.container.v1beta1.NodePool.ExclusionUntilEndOfSupport.verify|verify} messages.
                     * @param message ExclusionUntilEndOfSupport message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.container.v1beta1.NodePool.IExclusionUntilEndOfSupport, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ExclusionUntilEndOfSupport message, length delimited. Does not implicitly {@link google.container.v1beta1.NodePool.ExclusionUntilEndOfSupport.verify|verify} messages.
                     * @param message ExclusionUntilEndOfSupport message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.container.v1beta1.NodePool.IExclusionUntilEndOfSupport, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an ExclusionUntilEndOfSupport message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ExclusionUntilEndOfSupport
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.NodePool.ExclusionUntilEndOfSupport;

                    /**
                     * Decodes an ExclusionUntilEndOfSupport message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ExclusionUntilEndOfSupport
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.NodePool.ExclusionUntilEndOfSupport;

                    /**
                     * Verifies an ExclusionUntilEndOfSupport message.
                     * @param message Plain 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 ExclusionUntilEndOfSupport message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ExclusionUntilEndOfSupport
                     */
                    public static fromObject(object: { [k: string]: any }): google.container.v1beta1.NodePool.ExclusionUntilEndOfSupport;

                    /**
                     * Creates a plain object from an ExclusionUntilEndOfSupport message. Also converts values to other types if specified.
                     * @param message ExclusionUntilEndOfSupport
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.container.v1beta1.NodePool.ExclusionUntilEndOfSupport, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ExclusionUntilEndOfSupport to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ExclusionUntilEndOfSupport
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NodePoolMaintenancePolicy. */
                interface INodePoolMaintenancePolicy {

                    /** NodePoolMaintenancePolicy exclusionUntilEndOfSupport */
                    exclusionUntilEndOfSupport?: (google.container.v1beta1.NodePool.IExclusionUntilEndOfSupport|null);
                }

                /** Represents a NodePoolMaintenancePolicy. */
                class NodePoolMaintenancePolicy implements INodePoolMaintenancePolicy {

                    /**
                     * Constructs a new NodePoolMaintenancePolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.container.v1beta1.NodePool.INodePoolMaintenancePolicy);

                    /** NodePoolMaintenancePolicy exclusionUntilEndOfSupport. */
                    public exclusionUntilEndOfSupport?: (google.container.v1beta1.NodePool.IExclusionUntilEndOfSupport|null);

                    /**
                     * Creates a new NodePoolMaintenancePolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NodePoolMaintenancePolicy instance
                     */
                    public static create(properties?: google.container.v1beta1.NodePool.INodePoolMaintenancePolicy): google.container.v1beta1.NodePool.NodePoolMaintenancePolicy;

                    /**
                     * Encodes the specified NodePoolMaintenancePolicy message. Does not implicitly {@link google.container.v1beta1.NodePool.NodePoolMaintenancePolicy.verify|verify} messages.
                     * @param message NodePoolMaintenancePolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.container.v1beta1.NodePool.INodePoolMaintenancePolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NodePoolMaintenancePolicy message, length delimited. Does not implicitly {@link google.container.v1beta1.NodePool.NodePoolMaintenancePolicy.verify|verify} messages.
                     * @param message NodePoolMaintenancePolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.container.v1beta1.NodePool.INodePoolMaintenancePolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NodePoolMaintenancePolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NodePoolMaintenancePolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.NodePool.NodePoolMaintenancePolicy;

                    /**
                     * Decodes a NodePoolMaintenancePolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NodePoolMaintenancePolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.NodePool.NodePoolMaintenancePolicy;

                    /**
                     * Verifies a NodePoolMaintenancePolicy message.
                     * @param message Plain 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 NodePoolMaintenancePolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NodePoolMaintenancePolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.container.v1beta1.NodePool.NodePoolMaintenancePolicy;

                    /**
                     * Creates a plain object from a NodePoolMaintenancePolicy message. Also converts values to other types if specified.
                     * @param message NodePoolMaintenancePolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.container.v1beta1.NodePool.NodePoolMaintenancePolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NodePoolMaintenancePolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NodePoolMaintenancePolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }
            }

            /** Properties of a NodeManagement. */
            interface INodeManagement {

                /** NodeManagement autoUpgrade */
                autoUpgrade?: (boolean|null);

                /** NodeManagement autoRepair */
                autoRepair?: (boolean|null);

                /** NodeManagement upgradeOptions */
                upgradeOptions?: (google.container.v1beta1.IAutoUpgradeOptions|null);
            }

            /** Represents a NodeManagement. */
            class NodeManagement implements INodeManagement {

                /**
                 * Constructs a new NodeManagement.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.INodeManagement);

                /** NodeManagement autoUpgrade. */
                public autoUpgrade: boolean;

                /** NodeManagement autoRepair. */
                public autoRepair: boolean;

                /** NodeManagement upgradeOptions. */
                public upgradeOptions?: (google.container.v1beta1.IAutoUpgradeOptions|null);

                /**
                 * Creates a new NodeManagement instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns NodeManagement instance
                 */
                public static create(properties?: google.container.v1beta1.INodeManagement): google.container.v1beta1.NodeManagement;

                /**
                 * Encodes the specified NodeManagement message. Does not implicitly {@link google.container.v1beta1.NodeManagement.verify|verify} messages.
                 * @param message NodeManagement message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.INodeManagement, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified NodeManagement message, length delimited. Does not implicitly {@link google.container.v1beta1.NodeManagement.verify|verify} messages.
                 * @param message NodeManagement message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.INodeManagement, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a NodeManagement message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns NodeManagement
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.NodeManagement;

                /**
                 * Decodes a NodeManagement message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns NodeManagement
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.NodeManagement;

                /**
                 * Verifies a NodeManagement message.
                 * @param message Plain 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 NodeManagement message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns NodeManagement
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.NodeManagement;

                /**
                 * Creates a plain object from a NodeManagement message. Also converts values to other types if specified.
                 * @param message NodeManagement
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.NodeManagement, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this NodeManagement to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for NodeManagement
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of an AutoUpgradeOptions. */
            interface IAutoUpgradeOptions {

                /** AutoUpgradeOptions autoUpgradeStartTime */
                autoUpgradeStartTime?: (string|null);

                /** AutoUpgradeOptions description */
                description?: (string|null);
            }

            /** Represents an AutoUpgradeOptions. */
            class AutoUpgradeOptions implements IAutoUpgradeOptions {

                /**
                 * Constructs a new AutoUpgradeOptions.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IAutoUpgradeOptions);

                /** AutoUpgradeOptions autoUpgradeStartTime. */
                public autoUpgradeStartTime: string;

                /** AutoUpgradeOptions description. */
                public description: string;

                /**
                 * Creates a new AutoUpgradeOptions instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns AutoUpgradeOptions instance
                 */
                public static create(properties?: google.container.v1beta1.IAutoUpgradeOptions): google.container.v1beta1.AutoUpgradeOptions;

                /**
                 * Encodes the specified AutoUpgradeOptions message. Does not implicitly {@link google.container.v1beta1.AutoUpgradeOptions.verify|verify} messages.
                 * @param message AutoUpgradeOptions message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IAutoUpgradeOptions, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified AutoUpgradeOptions message, length delimited. Does not implicitly {@link google.container.v1beta1.AutoUpgradeOptions.verify|verify} messages.
                 * @param message AutoUpgradeOptions message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IAutoUpgradeOptions, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes an AutoUpgradeOptions message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns AutoUpgradeOptions
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.AutoUpgradeOptions;

                /**
                 * Decodes an AutoUpgradeOptions message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns AutoUpgradeOptions
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.AutoUpgradeOptions;

                /**
                 * Verifies an AutoUpgradeOptions message.
                 * @param message Plain 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 AutoUpgradeOptions message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns AutoUpgradeOptions
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.AutoUpgradeOptions;

                /**
                 * Creates a plain object from an AutoUpgradeOptions message. Also converts values to other types if specified.
                 * @param message AutoUpgradeOptions
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.AutoUpgradeOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this AutoUpgradeOptions to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for AutoUpgradeOptions
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a MaintenancePolicy. */
            interface IMaintenancePolicy {

                /** MaintenancePolicy window */
                window?: (google.container.v1beta1.IMaintenanceWindow|null);

                /** MaintenancePolicy resourceVersion */
                resourceVersion?: (string|null);

                /** MaintenancePolicy disruptionBudget */
                disruptionBudget?: (google.container.v1beta1.IDisruptionBudget|null);
            }

            /** Represents a MaintenancePolicy. */
            class MaintenancePolicy implements IMaintenancePolicy {

                /**
                 * Constructs a new MaintenancePolicy.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IMaintenancePolicy);

                /** MaintenancePolicy window. */
                public window?: (google.container.v1beta1.IMaintenanceWindow|null);

                /** MaintenancePolicy resourceVersion. */
                public resourceVersion: string;

                /** MaintenancePolicy disruptionBudget. */
                public disruptionBudget?: (google.container.v1beta1.IDisruptionBudget|null);

                /**
                 * Creates a new MaintenancePolicy instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns MaintenancePolicy instance
                 */
                public static create(properties?: google.container.v1beta1.IMaintenancePolicy): google.container.v1beta1.MaintenancePolicy;

                /**
                 * Encodes the specified MaintenancePolicy message. Does not implicitly {@link google.container.v1beta1.MaintenancePolicy.verify|verify} messages.
                 * @param message MaintenancePolicy message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IMaintenancePolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified MaintenancePolicy message, length delimited. Does not implicitly {@link google.container.v1beta1.MaintenancePolicy.verify|verify} messages.
                 * @param message MaintenancePolicy message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IMaintenancePolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a MaintenancePolicy message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns MaintenancePolicy
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.MaintenancePolicy;

                /**
                 * Decodes a MaintenancePolicy message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns MaintenancePolicy
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.MaintenancePolicy;

                /**
                 * Verifies a MaintenancePolicy message.
                 * @param message Plain 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 MaintenancePolicy message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns MaintenancePolicy
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.MaintenancePolicy;

                /**
                 * Creates a plain object from a MaintenancePolicy message. Also converts values to other types if specified.
                 * @param message MaintenancePolicy
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.MaintenancePolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this MaintenancePolicy to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for MaintenancePolicy
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a DisruptionBudget. */
            interface IDisruptionBudget {

                /** DisruptionBudget minorVersionDisruptionInterval */
                minorVersionDisruptionInterval?: (google.protobuf.IDuration|null);

                /** DisruptionBudget patchVersionDisruptionInterval */
                patchVersionDisruptionInterval?: (google.protobuf.IDuration|null);

                /** DisruptionBudget lastMinorVersionDisruptionTime */
                lastMinorVersionDisruptionTime?: (google.protobuf.ITimestamp|null);

                /** DisruptionBudget lastDisruptionTime */
                lastDisruptionTime?: (google.protobuf.ITimestamp|null);
            }

            /** Represents a DisruptionBudget. */
            class DisruptionBudget implements IDisruptionBudget {

                /**
                 * Constructs a new DisruptionBudget.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IDisruptionBudget);

                /** DisruptionBudget minorVersionDisruptionInterval. */
                public minorVersionDisruptionInterval?: (google.protobuf.IDuration|null);

                /** DisruptionBudget patchVersionDisruptionInterval. */
                public patchVersionDisruptionInterval?: (google.protobuf.IDuration|null);

                /** DisruptionBudget lastMinorVersionDisruptionTime. */
                public lastMinorVersionDisruptionTime?: (google.protobuf.ITimestamp|null);

                /** DisruptionBudget lastDisruptionTime. */
                public lastDisruptionTime?: (google.protobuf.ITimestamp|null);

                /**
                 * Creates a new DisruptionBudget instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns DisruptionBudget instance
                 */
                public static create(properties?: google.container.v1beta1.IDisruptionBudget): google.container.v1beta1.DisruptionBudget;

                /**
                 * Encodes the specified DisruptionBudget message. Does not implicitly {@link google.container.v1beta1.DisruptionBudget.verify|verify} messages.
                 * @param message DisruptionBudget message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IDisruptionBudget, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified DisruptionBudget message, length delimited. Does not implicitly {@link google.container.v1beta1.DisruptionBudget.verify|verify} messages.
                 * @param message DisruptionBudget message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IDisruptionBudget, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a DisruptionBudget message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns DisruptionBudget
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.DisruptionBudget;

                /**
                 * Decodes a DisruptionBudget message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns DisruptionBudget
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.DisruptionBudget;

                /**
                 * Verifies a DisruptionBudget message.
                 * @param message Plain 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 DisruptionBudget message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns DisruptionBudget
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.DisruptionBudget;

                /**
                 * Creates a plain object from a DisruptionBudget message. Also converts values to other types if specified.
                 * @param message DisruptionBudget
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.DisruptionBudget, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this DisruptionBudget to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for DisruptionBudget
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a MaintenanceWindow. */
            interface IMaintenanceWindow {

                /** MaintenanceWindow dailyMaintenanceWindow */
                dailyMaintenanceWindow?: (google.container.v1beta1.IDailyMaintenanceWindow|null);

                /** MaintenanceWindow recurringWindow */
                recurringWindow?: (google.container.v1beta1.IRecurringTimeWindow|null);

                /** MaintenanceWindow recurringMaintenanceWindow */
                recurringMaintenanceWindow?: (google.container.v1beta1.IRecurringMaintenanceWindow|null);

                /** MaintenanceWindow maintenanceExclusions */
                maintenanceExclusions?: ({ [k: string]: google.container.v1beta1.ITimeWindow }|null);
            }

            /** Represents a MaintenanceWindow. */
            class MaintenanceWindow implements IMaintenanceWindow {

                /**
                 * Constructs a new MaintenanceWindow.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IMaintenanceWindow);

                /** MaintenanceWindow dailyMaintenanceWindow. */
                public dailyMaintenanceWindow?: (google.container.v1beta1.IDailyMaintenanceWindow|null);

                /** MaintenanceWindow recurringWindow. */
                public recurringWindow?: (google.container.v1beta1.IRecurringTimeWindow|null);

                /** MaintenanceWindow recurringMaintenanceWindow. */
                public recurringMaintenanceWindow?: (google.container.v1beta1.IRecurringMaintenanceWindow|null);

                /** MaintenanceWindow maintenanceExclusions. */
                public maintenanceExclusions: { [k: string]: google.container.v1beta1.ITimeWindow };

                /** MaintenanceWindow policy. */
                public policy?: ("dailyMaintenanceWindow"|"recurringWindow"|"recurringMaintenanceWindow");

                /**
                 * Creates a new MaintenanceWindow instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns MaintenanceWindow instance
                 */
                public static create(properties?: google.container.v1beta1.IMaintenanceWindow): google.container.v1beta1.MaintenanceWindow;

                /**
                 * Encodes the specified MaintenanceWindow message. Does not implicitly {@link google.container.v1beta1.MaintenanceWindow.verify|verify} messages.
                 * @param message MaintenanceWindow message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IMaintenanceWindow, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified MaintenanceWindow message, length delimited. Does not implicitly {@link google.container.v1beta1.MaintenanceWindow.verify|verify} messages.
                 * @param message MaintenanceWindow message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IMaintenanceWindow, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a MaintenanceWindow message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns MaintenanceWindow
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.MaintenanceWindow;

                /**
                 * Decodes a MaintenanceWindow message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns MaintenanceWindow
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.MaintenanceWindow;

                /**
                 * Verifies a MaintenanceWindow message.
                 * @param message Plain 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 MaintenanceWindow message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns MaintenanceWindow
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.MaintenanceWindow;

                /**
                 * Creates a plain object from a MaintenanceWindow message. Also converts values to other types if specified.
                 * @param message MaintenanceWindow
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.MaintenanceWindow, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this MaintenanceWindow to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for MaintenanceWindow
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a TimeWindow. */
            interface ITimeWindow {

                /** TimeWindow maintenanceExclusionOptions */
                maintenanceExclusionOptions?: (google.container.v1beta1.IMaintenanceExclusionOptions|null);

                /** TimeWindow startTime */
                startTime?: (google.protobuf.ITimestamp|null);

                /** TimeWindow endTime */
                endTime?: (google.protobuf.ITimestamp|null);
            }

            /** Represents a TimeWindow. */
            class TimeWindow implements ITimeWindow {

                /**
                 * Constructs a new TimeWindow.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.ITimeWindow);

                /** TimeWindow maintenanceExclusionOptions. */
                public maintenanceExclusionOptions?: (google.container.v1beta1.IMaintenanceExclusionOptions|null);

                /** TimeWindow startTime. */
                public startTime?: (google.protobuf.ITimestamp|null);

                /** TimeWindow endTime. */
                public endTime?: (google.protobuf.ITimestamp|null);

                /** TimeWindow options. */
                public options?: "maintenanceExclusionOptions";

                /**
                 * Creates a new TimeWindow instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns TimeWindow instance
                 */
                public static create(properties?: google.container.v1beta1.ITimeWindow): google.container.v1beta1.TimeWindow;

                /**
                 * Encodes the specified TimeWindow message. Does not implicitly {@link google.container.v1beta1.TimeWindow.verify|verify} messages.
                 * @param message TimeWindow message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.ITimeWindow, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified TimeWindow message, length delimited. Does not implicitly {@link google.container.v1beta1.TimeWindow.verify|verify} messages.
                 * @param message TimeWindow message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.ITimeWindow, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a TimeWindow message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns TimeWindow
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.TimeWindow;

                /**
                 * Decodes a TimeWindow message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns TimeWindow
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.TimeWindow;

                /**
                 * Verifies a TimeWindow message.
                 * @param message Plain 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 TimeWindow message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns TimeWindow
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.TimeWindow;

                /**
                 * Creates a plain object from a TimeWindow message. Also converts values to other types if specified.
                 * @param message TimeWindow
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.TimeWindow, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this TimeWindow to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for TimeWindow
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a MaintenanceExclusionOptions. */
            interface IMaintenanceExclusionOptions {

                /** MaintenanceExclusionOptions scope */
                scope?: (google.container.v1beta1.MaintenanceExclusionOptions.Scope|keyof typeof google.container.v1beta1.MaintenanceExclusionOptions.Scope|null);

                /** MaintenanceExclusionOptions endTimeBehavior */
                endTimeBehavior?: (google.container.v1beta1.MaintenanceExclusionOptions.EndTimeBehavior|keyof typeof google.container.v1beta1.MaintenanceExclusionOptions.EndTimeBehavior|null);
            }

            /** Represents a MaintenanceExclusionOptions. */
            class MaintenanceExclusionOptions implements IMaintenanceExclusionOptions {

                /**
                 * Constructs a new MaintenanceExclusionOptions.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IMaintenanceExclusionOptions);

                /** MaintenanceExclusionOptions scope. */
                public scope: (google.container.v1beta1.MaintenanceExclusionOptions.Scope|keyof typeof google.container.v1beta1.MaintenanceExclusionOptions.Scope);

                /** MaintenanceExclusionOptions endTimeBehavior. */
                public endTimeBehavior: (google.container.v1beta1.MaintenanceExclusionOptions.EndTimeBehavior|keyof typeof google.container.v1beta1.MaintenanceExclusionOptions.EndTimeBehavior);

                /**
                 * Creates a new MaintenanceExclusionOptions instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns MaintenanceExclusionOptions instance
                 */
                public static create(properties?: google.container.v1beta1.IMaintenanceExclusionOptions): google.container.v1beta1.MaintenanceExclusionOptions;

                /**
                 * Encodes the specified MaintenanceExclusionOptions message. Does not implicitly {@link google.container.v1beta1.MaintenanceExclusionOptions.verify|verify} messages.
                 * @param message MaintenanceExclusionOptions message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IMaintenanceExclusionOptions, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified MaintenanceExclusionOptions message, length delimited. Does not implicitly {@link google.container.v1beta1.MaintenanceExclusionOptions.verify|verify} messages.
                 * @param message MaintenanceExclusionOptions message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IMaintenanceExclusionOptions, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a MaintenanceExclusionOptions message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns MaintenanceExclusionOptions
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.MaintenanceExclusionOptions;

                /**
                 * Decodes a MaintenanceExclusionOptions message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns MaintenanceExclusionOptions
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.MaintenanceExclusionOptions;

                /**
                 * Verifies a MaintenanceExclusionOptions message.
                 * @param message Plain 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 MaintenanceExclusionOptions message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns MaintenanceExclusionOptions
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.MaintenanceExclusionOptions;

                /**
                 * Creates a plain object from a MaintenanceExclusionOptions message. Also converts values to other types if specified.
                 * @param message MaintenanceExclusionOptions
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.MaintenanceExclusionOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this MaintenanceExclusionOptions to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for MaintenanceExclusionOptions
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace MaintenanceExclusionOptions {

                /** Scope enum. */
                enum Scope {
                    NO_UPGRADES = 0,
                    NO_MINOR_UPGRADES = 1,
                    NO_MINOR_OR_NODE_UPGRADES = 2
                }

                /** EndTimeBehavior enum. */
                enum EndTimeBehavior {
                    END_TIME_BEHAVIOR_UNSPECIFIED = 0,
                    UNTIL_END_OF_SUPPORT = 1
                }
            }

            /** Properties of a RecurringTimeWindow. */
            interface IRecurringTimeWindow {

                /** RecurringTimeWindow window */
                window?: (google.container.v1beta1.ITimeWindow|null);

                /** RecurringTimeWindow recurrence */
                recurrence?: (string|null);
            }

            /** Represents a RecurringTimeWindow. */
            class RecurringTimeWindow implements IRecurringTimeWindow {

                /**
                 * Constructs a new RecurringTimeWindow.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IRecurringTimeWindow);

                /** RecurringTimeWindow window. */
                public window?: (google.container.v1beta1.ITimeWindow|null);

                /** RecurringTimeWindow recurrence. */
                public recurrence: string;

                /**
                 * Creates a new RecurringTimeWindow instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns RecurringTimeWindow instance
                 */
                public static create(properties?: google.container.v1beta1.IRecurringTimeWindow): google.container.v1beta1.RecurringTimeWindow;

                /**
                 * Encodes the specified RecurringTimeWindow message. Does not implicitly {@link google.container.v1beta1.RecurringTimeWindow.verify|verify} messages.
                 * @param message RecurringTimeWindow message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IRecurringTimeWindow, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified RecurringTimeWindow message, length delimited. Does not implicitly {@link google.container.v1beta1.RecurringTimeWindow.verify|verify} messages.
                 * @param message RecurringTimeWindow message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IRecurringTimeWindow, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a RecurringTimeWindow message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns RecurringTimeWindow
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.RecurringTimeWindow;

                /**
                 * Decodes a RecurringTimeWindow message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns RecurringTimeWindow
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.RecurringTimeWindow;

                /**
                 * Verifies a RecurringTimeWindow message.
                 * @param message Plain 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 RecurringTimeWindow message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns RecurringTimeWindow
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.RecurringTimeWindow;

                /**
                 * Creates a plain object from a RecurringTimeWindow message. Also converts values to other types if specified.
                 * @param message RecurringTimeWindow
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.RecurringTimeWindow, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this RecurringTimeWindow to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for RecurringTimeWindow
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a RecurringMaintenanceWindow. */
            interface IRecurringMaintenanceWindow {

                /** RecurringMaintenanceWindow delayUntil */
                delayUntil?: (google.type.IDate|null);

                /** RecurringMaintenanceWindow windowStartTime */
                windowStartTime?: (google.type.ITimeOfDay|null);

                /** RecurringMaintenanceWindow windowDuration */
                windowDuration?: (google.protobuf.IDuration|null);

                /** RecurringMaintenanceWindow recurrence */
                recurrence?: (string|null);
            }

            /** Represents a RecurringMaintenanceWindow. */
            class RecurringMaintenanceWindow implements IRecurringMaintenanceWindow {

                /**
                 * Constructs a new RecurringMaintenanceWindow.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IRecurringMaintenanceWindow);

                /** RecurringMaintenanceWindow delayUntil. */
                public delayUntil?: (google.type.IDate|null);

                /** RecurringMaintenanceWindow windowStartTime. */
                public windowStartTime?: (google.type.ITimeOfDay|null);

                /** RecurringMaintenanceWindow windowDuration. */
                public windowDuration?: (google.protobuf.IDuration|null);

                /** RecurringMaintenanceWindow recurrence. */
                public recurrence: string;

                /**
                 * Creates a new RecurringMaintenanceWindow instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns RecurringMaintenanceWindow instance
                 */
                public static create(properties?: google.container.v1beta1.IRecurringMaintenanceWindow): google.container.v1beta1.RecurringMaintenanceWindow;

                /**
                 * Encodes the specified RecurringMaintenanceWindow message. Does not implicitly {@link google.container.v1beta1.RecurringMaintenanceWindow.verify|verify} messages.
                 * @param message RecurringMaintenanceWindow message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IRecurringMaintenanceWindow, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified RecurringMaintenanceWindow message, length delimited. Does not implicitly {@link google.container.v1beta1.RecurringMaintenanceWindow.verify|verify} messages.
                 * @param message RecurringMaintenanceWindow message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IRecurringMaintenanceWindow, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a RecurringMaintenanceWindow message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns RecurringMaintenanceWindow
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.RecurringMaintenanceWindow;

                /**
                 * Decodes a RecurringMaintenanceWindow message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns RecurringMaintenanceWindow
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.RecurringMaintenanceWindow;

                /**
                 * Verifies a RecurringMaintenanceWindow message.
                 * @param message Plain 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 RecurringMaintenanceWindow message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns RecurringMaintenanceWindow
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.RecurringMaintenanceWindow;

                /**
                 * Creates a plain object from a RecurringMaintenanceWindow message. Also converts values to other types if specified.
                 * @param message RecurringMaintenanceWindow
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.RecurringMaintenanceWindow, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this RecurringMaintenanceWindow to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for RecurringMaintenanceWindow
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a DailyMaintenanceWindow. */
            interface IDailyMaintenanceWindow {

                /** DailyMaintenanceWindow startTime */
                startTime?: (string|null);

                /** DailyMaintenanceWindow duration */
                duration?: (string|null);
            }

            /** Represents a DailyMaintenanceWindow. */
            class DailyMaintenanceWindow implements IDailyMaintenanceWindow {

                /**
                 * Constructs a new DailyMaintenanceWindow.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IDailyMaintenanceWindow);

                /** DailyMaintenanceWindow startTime. */
                public startTime: string;

                /** DailyMaintenanceWindow duration. */
                public duration: string;

                /**
                 * Creates a new DailyMaintenanceWindow instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns DailyMaintenanceWindow instance
                 */
                public static create(properties?: google.container.v1beta1.IDailyMaintenanceWindow): google.container.v1beta1.DailyMaintenanceWindow;

                /**
                 * Encodes the specified DailyMaintenanceWindow message. Does not implicitly {@link google.container.v1beta1.DailyMaintenanceWindow.verify|verify} messages.
                 * @param message DailyMaintenanceWindow message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IDailyMaintenanceWindow, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified DailyMaintenanceWindow message, length delimited. Does not implicitly {@link google.container.v1beta1.DailyMaintenanceWindow.verify|verify} messages.
                 * @param message DailyMaintenanceWindow message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IDailyMaintenanceWindow, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a DailyMaintenanceWindow message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns DailyMaintenanceWindow
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.DailyMaintenanceWindow;

                /**
                 * Decodes a DailyMaintenanceWindow message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns DailyMaintenanceWindow
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.DailyMaintenanceWindow;

                /**
                 * Verifies a DailyMaintenanceWindow message.
                 * @param message Plain 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 DailyMaintenanceWindow message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns DailyMaintenanceWindow
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.DailyMaintenanceWindow;

                /**
                 * Creates a plain object from a DailyMaintenanceWindow message. Also converts values to other types if specified.
                 * @param message DailyMaintenanceWindow
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.DailyMaintenanceWindow, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this DailyMaintenanceWindow to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for DailyMaintenanceWindow
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a SetNodePoolManagementRequest. */
            interface ISetNodePoolManagementRequest {

                /** SetNodePoolManagementRequest projectId */
                projectId?: (string|null);

                /** SetNodePoolManagementRequest zone */
                zone?: (string|null);

                /** SetNodePoolManagementRequest clusterId */
                clusterId?: (string|null);

                /** SetNodePoolManagementRequest nodePoolId */
                nodePoolId?: (string|null);

                /** SetNodePoolManagementRequest management */
                management?: (google.container.v1beta1.INodeManagement|null);

                /** SetNodePoolManagementRequest name */
                name?: (string|null);
            }

            /** Represents a SetNodePoolManagementRequest. */
            class SetNodePoolManagementRequest implements ISetNodePoolManagementRequest {

                /**
                 * Constructs a new SetNodePoolManagementRequest.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.ISetNodePoolManagementRequest);

                /** SetNodePoolManagementRequest projectId. */
                public projectId: string;

                /** SetNodePoolManagementRequest zone. */
                public zone: string;

                /** SetNodePoolManagementRequest clusterId. */
                public clusterId: string;

                /** SetNodePoolManagementRequest nodePoolId. */
                public nodePoolId: string;

                /** SetNodePoolManagementRequest management. */
                public management?: (google.container.v1beta1.INodeManagement|null);

                /** SetNodePoolManagementRequest name. */
                public name: string;

                /**
                 * Creates a new SetNodePoolManagementRequest instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns SetNodePoolManagementRequest instance
                 */
                public static create(properties?: google.container.v1beta1.ISetNodePoolManagementRequest): google.container.v1beta1.SetNodePoolManagementRequest;

                /**
                 * Encodes the specified SetNodePoolManagementRequest message. Does not implicitly {@link google.container.v1beta1.SetNodePoolManagementRequest.verify|verify} messages.
                 * @param message SetNodePoolManagementRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.ISetNodePoolManagementRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified SetNodePoolManagementRequest message, length delimited. Does not implicitly {@link google.container.v1beta1.SetNodePoolManagementRequest.verify|verify} messages.
                 * @param message SetNodePoolManagementRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.ISetNodePoolManagementRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a SetNodePoolManagementRequest message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns SetNodePoolManagementRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.SetNodePoolManagementRequest;

                /**
                 * Decodes a SetNodePoolManagementRequest message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns SetNodePoolManagementRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.SetNodePoolManagementRequest;

                /**
                 * Verifies a SetNodePoolManagementRequest message.
                 * @param message Plain 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 SetNodePoolManagementRequest message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns SetNodePoolManagementRequest
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.SetNodePoolManagementRequest;

                /**
                 * Creates a plain object from a SetNodePoolManagementRequest message. Also converts values to other types if specified.
                 * @param message SetNodePoolManagementRequest
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.SetNodePoolManagementRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this SetNodePoolManagementRequest to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for SetNodePoolManagementRequest
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a SetNodePoolSizeRequest. */
            interface ISetNodePoolSizeRequest {

                /** SetNodePoolSizeRequest projectId */
                projectId?: (string|null);

                /** SetNodePoolSizeRequest zone */
                zone?: (string|null);

                /** SetNodePoolSizeRequest clusterId */
                clusterId?: (string|null);

                /** SetNodePoolSizeRequest nodePoolId */
                nodePoolId?: (string|null);

                /** SetNodePoolSizeRequest nodeCount */
                nodeCount?: (number|null);

                /** SetNodePoolSizeRequest name */
                name?: (string|null);
            }

            /** Represents a SetNodePoolSizeRequest. */
            class SetNodePoolSizeRequest implements ISetNodePoolSizeRequest {

                /**
                 * Constructs a new SetNodePoolSizeRequest.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.ISetNodePoolSizeRequest);

                /** SetNodePoolSizeRequest projectId. */
                public projectId: string;

                /** SetNodePoolSizeRequest zone. */
                public zone: string;

                /** SetNodePoolSizeRequest clusterId. */
                public clusterId: string;

                /** SetNodePoolSizeRequest nodePoolId. */
                public nodePoolId: string;

                /** SetNodePoolSizeRequest nodeCount. */
                public nodeCount: number;

                /** SetNodePoolSizeRequest name. */
                public name: string;

                /**
                 * Creates a new SetNodePoolSizeRequest instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns SetNodePoolSizeRequest instance
                 */
                public static create(properties?: google.container.v1beta1.ISetNodePoolSizeRequest): google.container.v1beta1.SetNodePoolSizeRequest;

                /**
                 * Encodes the specified SetNodePoolSizeRequest message. Does not implicitly {@link google.container.v1beta1.SetNodePoolSizeRequest.verify|verify} messages.
                 * @param message SetNodePoolSizeRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.ISetNodePoolSizeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified SetNodePoolSizeRequest message, length delimited. Does not implicitly {@link google.container.v1beta1.SetNodePoolSizeRequest.verify|verify} messages.
                 * @param message SetNodePoolSizeRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.ISetNodePoolSizeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a SetNodePoolSizeRequest message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns SetNodePoolSizeRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.SetNodePoolSizeRequest;

                /**
                 * Decodes a SetNodePoolSizeRequest message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns SetNodePoolSizeRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.SetNodePoolSizeRequest;

                /**
                 * Verifies a SetNodePoolSizeRequest message.
                 * @param message Plain 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 SetNodePoolSizeRequest message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns SetNodePoolSizeRequest
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.SetNodePoolSizeRequest;

                /**
                 * Creates a plain object from a SetNodePoolSizeRequest message. Also converts values to other types if specified.
                 * @param message SetNodePoolSizeRequest
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.SetNodePoolSizeRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this SetNodePoolSizeRequest to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for SetNodePoolSizeRequest
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a CompleteNodePoolUpgradeRequest. */
            interface ICompleteNodePoolUpgradeRequest {

                /** CompleteNodePoolUpgradeRequest name */
                name?: (string|null);
            }

            /** Represents a CompleteNodePoolUpgradeRequest. */
            class CompleteNodePoolUpgradeRequest implements ICompleteNodePoolUpgradeRequest {

                /**
                 * Constructs a new CompleteNodePoolUpgradeRequest.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.ICompleteNodePoolUpgradeRequest);

                /** CompleteNodePoolUpgradeRequest name. */
                public name: string;

                /**
                 * Creates a new CompleteNodePoolUpgradeRequest instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns CompleteNodePoolUpgradeRequest instance
                 */
                public static create(properties?: google.container.v1beta1.ICompleteNodePoolUpgradeRequest): google.container.v1beta1.CompleteNodePoolUpgradeRequest;

                /**
                 * Encodes the specified CompleteNodePoolUpgradeRequest message. Does not implicitly {@link google.container.v1beta1.CompleteNodePoolUpgradeRequest.verify|verify} messages.
                 * @param message CompleteNodePoolUpgradeRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.ICompleteNodePoolUpgradeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified CompleteNodePoolUpgradeRequest message, length delimited. Does not implicitly {@link google.container.v1beta1.CompleteNodePoolUpgradeRequest.verify|verify} messages.
                 * @param message CompleteNodePoolUpgradeRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.ICompleteNodePoolUpgradeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a CompleteNodePoolUpgradeRequest message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns CompleteNodePoolUpgradeRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.CompleteNodePoolUpgradeRequest;

                /**
                 * Decodes a CompleteNodePoolUpgradeRequest message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns CompleteNodePoolUpgradeRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.CompleteNodePoolUpgradeRequest;

                /**
                 * Verifies a CompleteNodePoolUpgradeRequest message.
                 * @param message Plain 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 CompleteNodePoolUpgradeRequest message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns CompleteNodePoolUpgradeRequest
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.CompleteNodePoolUpgradeRequest;

                /**
                 * Creates a plain object from a CompleteNodePoolUpgradeRequest message. Also converts values to other types if specified.
                 * @param message CompleteNodePoolUpgradeRequest
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.CompleteNodePoolUpgradeRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this CompleteNodePoolUpgradeRequest to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for CompleteNodePoolUpgradeRequest
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a RollbackNodePoolUpgradeRequest. */
            interface IRollbackNodePoolUpgradeRequest {

                /** RollbackNodePoolUpgradeRequest projectId */
                projectId?: (string|null);

                /** RollbackNodePoolUpgradeRequest zone */
                zone?: (string|null);

                /** RollbackNodePoolUpgradeRequest clusterId */
                clusterId?: (string|null);

                /** RollbackNodePoolUpgradeRequest nodePoolId */
                nodePoolId?: (string|null);

                /** RollbackNodePoolUpgradeRequest name */
                name?: (string|null);

                /** RollbackNodePoolUpgradeRequest respectPdb */
                respectPdb?: (boolean|null);
            }

            /** Represents a RollbackNodePoolUpgradeRequest. */
            class RollbackNodePoolUpgradeRequest implements IRollbackNodePoolUpgradeRequest {

                /**
                 * Constructs a new RollbackNodePoolUpgradeRequest.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IRollbackNodePoolUpgradeRequest);

                /** RollbackNodePoolUpgradeRequest projectId. */
                public projectId: string;

                /** RollbackNodePoolUpgradeRequest zone. */
                public zone: string;

                /** RollbackNodePoolUpgradeRequest clusterId. */
                public clusterId: string;

                /** RollbackNodePoolUpgradeRequest nodePoolId. */
                public nodePoolId: string;

                /** RollbackNodePoolUpgradeRequest name. */
                public name: string;

                /** RollbackNodePoolUpgradeRequest respectPdb. */
                public respectPdb: boolean;

                /**
                 * Creates a new RollbackNodePoolUpgradeRequest instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns RollbackNodePoolUpgradeRequest instance
                 */
                public static create(properties?: google.container.v1beta1.IRollbackNodePoolUpgradeRequest): google.container.v1beta1.RollbackNodePoolUpgradeRequest;

                /**
                 * Encodes the specified RollbackNodePoolUpgradeRequest message. Does not implicitly {@link google.container.v1beta1.RollbackNodePoolUpgradeRequest.verify|verify} messages.
                 * @param message RollbackNodePoolUpgradeRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IRollbackNodePoolUpgradeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified RollbackNodePoolUpgradeRequest message, length delimited. Does not implicitly {@link google.container.v1beta1.RollbackNodePoolUpgradeRequest.verify|verify} messages.
                 * @param message RollbackNodePoolUpgradeRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IRollbackNodePoolUpgradeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a RollbackNodePoolUpgradeRequest message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns RollbackNodePoolUpgradeRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.RollbackNodePoolUpgradeRequest;

                /**
                 * Decodes a RollbackNodePoolUpgradeRequest message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns RollbackNodePoolUpgradeRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.RollbackNodePoolUpgradeRequest;

                /**
                 * Verifies a RollbackNodePoolUpgradeRequest message.
                 * @param message Plain 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 RollbackNodePoolUpgradeRequest message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns RollbackNodePoolUpgradeRequest
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.RollbackNodePoolUpgradeRequest;

                /**
                 * Creates a plain object from a RollbackNodePoolUpgradeRequest message. Also converts values to other types if specified.
                 * @param message RollbackNodePoolUpgradeRequest
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.RollbackNodePoolUpgradeRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this RollbackNodePoolUpgradeRequest to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for RollbackNodePoolUpgradeRequest
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a ListNodePoolsResponse. */
            interface IListNodePoolsResponse {

                /** ListNodePoolsResponse nodePools */
                nodePools?: (google.container.v1beta1.INodePool[]|null);
            }

            /** Represents a ListNodePoolsResponse. */
            class ListNodePoolsResponse implements IListNodePoolsResponse {

                /**
                 * Constructs a new ListNodePoolsResponse.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IListNodePoolsResponse);

                /** ListNodePoolsResponse nodePools. */
                public nodePools: google.container.v1beta1.INodePool[];

                /**
                 * Creates a new ListNodePoolsResponse instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ListNodePoolsResponse instance
                 */
                public static create(properties?: google.container.v1beta1.IListNodePoolsResponse): google.container.v1beta1.ListNodePoolsResponse;

                /**
                 * Encodes the specified ListNodePoolsResponse message. Does not implicitly {@link google.container.v1beta1.ListNodePoolsResponse.verify|verify} messages.
                 * @param message ListNodePoolsResponse message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IListNodePoolsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified ListNodePoolsResponse message, length delimited. Does not implicitly {@link google.container.v1beta1.ListNodePoolsResponse.verify|verify} messages.
                 * @param message ListNodePoolsResponse message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IListNodePoolsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a ListNodePoolsResponse message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ListNodePoolsResponse
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.ListNodePoolsResponse;

                /**
                 * Decodes a ListNodePoolsResponse message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ListNodePoolsResponse
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.ListNodePoolsResponse;

                /**
                 * Verifies a ListNodePoolsResponse message.
                 * @param message Plain 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 ListNodePoolsResponse message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ListNodePoolsResponse
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.ListNodePoolsResponse;

                /**
                 * Creates a plain object from a ListNodePoolsResponse message. Also converts values to other types if specified.
                 * @param message ListNodePoolsResponse
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.ListNodePoolsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ListNodePoolsResponse to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for ListNodePoolsResponse
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a ClusterAutoscaling. */
            interface IClusterAutoscaling {

                /** ClusterAutoscaling enableNodeAutoprovisioning */
                enableNodeAutoprovisioning?: (boolean|null);

                /** ClusterAutoscaling resourceLimits */
                resourceLimits?: (google.container.v1beta1.IResourceLimit[]|null);

                /** ClusterAutoscaling autoscalingProfile */
                autoscalingProfile?: (google.container.v1beta1.ClusterAutoscaling.AutoscalingProfile|keyof typeof google.container.v1beta1.ClusterAutoscaling.AutoscalingProfile|null);

                /** ClusterAutoscaling autoprovisioningNodePoolDefaults */
                autoprovisioningNodePoolDefaults?: (google.container.v1beta1.IAutoprovisioningNodePoolDefaults|null);

                /** ClusterAutoscaling autoprovisioningLocations */
                autoprovisioningLocations?: (string[]|null);

                /** ClusterAutoscaling defaultComputeClassConfig */
                defaultComputeClassConfig?: (google.container.v1beta1.IDefaultComputeClassConfig|null);

                /** ClusterAutoscaling autopilotGeneralProfile */
                autopilotGeneralProfile?: (google.container.v1beta1.ClusterAutoscaling.AutopilotGeneralProfile|keyof typeof google.container.v1beta1.ClusterAutoscaling.AutopilotGeneralProfile|null);
            }

            /** Represents a ClusterAutoscaling. */
            class ClusterAutoscaling implements IClusterAutoscaling {

                /**
                 * Constructs a new ClusterAutoscaling.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IClusterAutoscaling);

                /** ClusterAutoscaling enableNodeAutoprovisioning. */
                public enableNodeAutoprovisioning: boolean;

                /** ClusterAutoscaling resourceLimits. */
                public resourceLimits: google.container.v1beta1.IResourceLimit[];

                /** ClusterAutoscaling autoscalingProfile. */
                public autoscalingProfile: (google.container.v1beta1.ClusterAutoscaling.AutoscalingProfile|keyof typeof google.container.v1beta1.ClusterAutoscaling.AutoscalingProfile);

                /** ClusterAutoscaling autoprovisioningNodePoolDefaults. */
                public autoprovisioningNodePoolDefaults?: (google.container.v1beta1.IAutoprovisioningNodePoolDefaults|null);

                /** ClusterAutoscaling autoprovisioningLocations. */
                public autoprovisioningLocations: string[];

                /** ClusterAutoscaling defaultComputeClassConfig. */
                public defaultComputeClassConfig?: (google.container.v1beta1.IDefaultComputeClassConfig|null);

                /** ClusterAutoscaling autopilotGeneralProfile. */
                public autopilotGeneralProfile: (google.container.v1beta1.ClusterAutoscaling.AutopilotGeneralProfile|keyof typeof google.container.v1beta1.ClusterAutoscaling.AutopilotGeneralProfile);

                /**
                 * Creates a new ClusterAutoscaling instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ClusterAutoscaling instance
                 */
                public static create(properties?: google.container.v1beta1.IClusterAutoscaling): google.container.v1beta1.ClusterAutoscaling;

                /**
                 * Encodes the specified ClusterAutoscaling message. Does not implicitly {@link google.container.v1beta1.ClusterAutoscaling.verify|verify} messages.
                 * @param message ClusterAutoscaling message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IClusterAutoscaling, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified ClusterAutoscaling message, length delimited. Does not implicitly {@link google.container.v1beta1.ClusterAutoscaling.verify|verify} messages.
                 * @param message ClusterAutoscaling message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IClusterAutoscaling, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a ClusterAutoscaling message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ClusterAutoscaling
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.ClusterAutoscaling;

                /**
                 * Decodes a ClusterAutoscaling message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ClusterAutoscaling
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.ClusterAutoscaling;

                /**
                 * Verifies a ClusterAutoscaling message.
                 * @param message Plain 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 ClusterAutoscaling message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ClusterAutoscaling
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.ClusterAutoscaling;

                /**
                 * Creates a plain object from a ClusterAutoscaling message. Also converts values to other types if specified.
                 * @param message ClusterAutoscaling
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.ClusterAutoscaling, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ClusterAutoscaling to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for ClusterAutoscaling
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace ClusterAutoscaling {

                /** AutoscalingProfile enum. */
                enum AutoscalingProfile {
                    PROFILE_UNSPECIFIED = 0,
                    OPTIMIZE_UTILIZATION = 1,
                    BALANCED = 2
                }

                /** AutopilotGeneralProfile enum. */
                enum AutopilotGeneralProfile {
                    AUTOPILOT_GENERAL_PROFILE_UNSPECIFIED = 0,
                    NO_PERFORMANCE = 1,
                    NONE = 2
                }
            }

            /** Properties of an AutoprovisioningNodePoolDefaults. */
            interface IAutoprovisioningNodePoolDefaults {

                /** AutoprovisioningNodePoolDefaults oauthScopes */
                oauthScopes?: (string[]|null);

                /** AutoprovisioningNodePoolDefaults serviceAccount */
                serviceAccount?: (string|null);

                /** AutoprovisioningNodePoolDefaults upgradeSettings */
                upgradeSettings?: (google.container.v1beta1.NodePool.IUpgradeSettings|null);

                /** AutoprovisioningNodePoolDefaults management */
                management?: (google.container.v1beta1.INodeManagement|null);

                /** AutoprovisioningNodePoolDefaults minCpuPlatform */
                minCpuPlatform?: (string|null);

                /** AutoprovisioningNodePoolDefaults diskSizeGb */
                diskSizeGb?: (number|null);

                /** AutoprovisioningNodePoolDefaults diskType */
                diskType?: (string|null);

                /** AutoprovisioningNodePoolDefaults shieldedInstanceConfig */
                shieldedInstanceConfig?: (google.container.v1beta1.IShieldedInstanceConfig|null);

                /** AutoprovisioningNodePoolDefaults bootDiskKmsKey */
                bootDiskKmsKey?: (string|null);

                /** AutoprovisioningNodePoolDefaults imageType */
                imageType?: (string|null);

                /** AutoprovisioningNodePoolDefaults insecureKubeletReadonlyPortEnabled */
                insecureKubeletReadonlyPortEnabled?: (boolean|null);
            }

            /** Represents an AutoprovisioningNodePoolDefaults. */
            class AutoprovisioningNodePoolDefaults implements IAutoprovisioningNodePoolDefaults {

                /**
                 * Constructs a new AutoprovisioningNodePoolDefaults.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IAutoprovisioningNodePoolDefaults);

                /** AutoprovisioningNodePoolDefaults oauthScopes. */
                public oauthScopes: string[];

                /** AutoprovisioningNodePoolDefaults serviceAccount. */
                public serviceAccount: string;

                /** AutoprovisioningNodePoolDefaults upgradeSettings. */
                public upgradeSettings?: (google.container.v1beta1.NodePool.IUpgradeSettings|null);

                /** AutoprovisioningNodePoolDefaults management. */
                public management?: (google.container.v1beta1.INodeManagement|null);

                /** AutoprovisioningNodePoolDefaults minCpuPlatform. */
                public minCpuPlatform: string;

                /** AutoprovisioningNodePoolDefaults diskSizeGb. */
                public diskSizeGb: number;

                /** AutoprovisioningNodePoolDefaults diskType. */
                public diskType: string;

                /** AutoprovisioningNodePoolDefaults shieldedInstanceConfig. */
                public shieldedInstanceConfig?: (google.container.v1beta1.IShieldedInstanceConfig|null);

                /** AutoprovisioningNodePoolDefaults bootDiskKmsKey. */
                public bootDiskKmsKey: string;

                /** AutoprovisioningNodePoolDefaults imageType. */
                public imageType: string;

                /** AutoprovisioningNodePoolDefaults insecureKubeletReadonlyPortEnabled. */
                public insecureKubeletReadonlyPortEnabled?: (boolean|null);

                /**
                 * Creates a new AutoprovisioningNodePoolDefaults instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns AutoprovisioningNodePoolDefaults instance
                 */
                public static create(properties?: google.container.v1beta1.IAutoprovisioningNodePoolDefaults): google.container.v1beta1.AutoprovisioningNodePoolDefaults;

                /**
                 * Encodes the specified AutoprovisioningNodePoolDefaults message. Does not implicitly {@link google.container.v1beta1.AutoprovisioningNodePoolDefaults.verify|verify} messages.
                 * @param message AutoprovisioningNodePoolDefaults message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IAutoprovisioningNodePoolDefaults, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified AutoprovisioningNodePoolDefaults message, length delimited. Does not implicitly {@link google.container.v1beta1.AutoprovisioningNodePoolDefaults.verify|verify} messages.
                 * @param message AutoprovisioningNodePoolDefaults message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IAutoprovisioningNodePoolDefaults, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes an AutoprovisioningNodePoolDefaults message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns AutoprovisioningNodePoolDefaults
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.AutoprovisioningNodePoolDefaults;

                /**
                 * Decodes an AutoprovisioningNodePoolDefaults message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns AutoprovisioningNodePoolDefaults
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.AutoprovisioningNodePoolDefaults;

                /**
                 * Verifies an AutoprovisioningNodePoolDefaults message.
                 * @param message Plain 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 AutoprovisioningNodePoolDefaults message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns AutoprovisioningNodePoolDefaults
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.AutoprovisioningNodePoolDefaults;

                /**
                 * Creates a plain object from an AutoprovisioningNodePoolDefaults message. Also converts values to other types if specified.
                 * @param message AutoprovisioningNodePoolDefaults
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.AutoprovisioningNodePoolDefaults, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this AutoprovisioningNodePoolDefaults to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for AutoprovisioningNodePoolDefaults
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a ResourceLimit. */
            interface IResourceLimit {

                /** ResourceLimit resourceType */
                resourceType?: (string|null);

                /** ResourceLimit minimum */
                minimum?: (number|Long|string|null);

                /** ResourceLimit maximum */
                maximum?: (number|Long|string|null);
            }

            /** Represents a ResourceLimit. */
            class ResourceLimit implements IResourceLimit {

                /**
                 * Constructs a new ResourceLimit.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IResourceLimit);

                /** ResourceLimit resourceType. */
                public resourceType: string;

                /** ResourceLimit minimum. */
                public minimum: (number|Long|string);

                /** ResourceLimit maximum. */
                public maximum: (number|Long|string);

                /**
                 * Creates a new ResourceLimit instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ResourceLimit instance
                 */
                public static create(properties?: google.container.v1beta1.IResourceLimit): google.container.v1beta1.ResourceLimit;

                /**
                 * Encodes the specified ResourceLimit message. Does not implicitly {@link google.container.v1beta1.ResourceLimit.verify|verify} messages.
                 * @param message ResourceLimit message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IResourceLimit, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified ResourceLimit message, length delimited. Does not implicitly {@link google.container.v1beta1.ResourceLimit.verify|verify} messages.
                 * @param message ResourceLimit message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IResourceLimit, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a ResourceLimit message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ResourceLimit
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.ResourceLimit;

                /**
                 * Decodes a ResourceLimit message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ResourceLimit
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.ResourceLimit;

                /**
                 * Verifies a ResourceLimit message.
                 * @param message Plain 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 ResourceLimit message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ResourceLimit
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.ResourceLimit;

                /**
                 * Creates a plain object from a ResourceLimit message. Also converts values to other types if specified.
                 * @param message ResourceLimit
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.ResourceLimit, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ResourceLimit to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for ResourceLimit
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a DefaultComputeClassConfig. */
            interface IDefaultComputeClassConfig {

                /** DefaultComputeClassConfig enabled */
                enabled?: (boolean|null);
            }

            /** Represents a DefaultComputeClassConfig. */
            class DefaultComputeClassConfig implements IDefaultComputeClassConfig {

                /**
                 * Constructs a new DefaultComputeClassConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IDefaultComputeClassConfig);

                /** DefaultComputeClassConfig enabled. */
                public enabled: boolean;

                /**
                 * Creates a new DefaultComputeClassConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns DefaultComputeClassConfig instance
                 */
                public static create(properties?: google.container.v1beta1.IDefaultComputeClassConfig): google.container.v1beta1.DefaultComputeClassConfig;

                /**
                 * Encodes the specified DefaultComputeClassConfig message. Does not implicitly {@link google.container.v1beta1.DefaultComputeClassConfig.verify|verify} messages.
                 * @param message DefaultComputeClassConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IDefaultComputeClassConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified DefaultComputeClassConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.DefaultComputeClassConfig.verify|verify} messages.
                 * @param message DefaultComputeClassConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IDefaultComputeClassConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a DefaultComputeClassConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns DefaultComputeClassConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.DefaultComputeClassConfig;

                /**
                 * Decodes a DefaultComputeClassConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns DefaultComputeClassConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.DefaultComputeClassConfig;

                /**
                 * Verifies a DefaultComputeClassConfig message.
                 * @param message Plain 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 DefaultComputeClassConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns DefaultComputeClassConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.DefaultComputeClassConfig;

                /**
                 * Creates a plain object from a DefaultComputeClassConfig message. Also converts values to other types if specified.
                 * @param message DefaultComputeClassConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.DefaultComputeClassConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this DefaultComputeClassConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for DefaultComputeClassConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a NodePoolAutoscaling. */
            interface INodePoolAutoscaling {

                /** NodePoolAutoscaling enabled */
                enabled?: (boolean|null);

                /** NodePoolAutoscaling minNodeCount */
                minNodeCount?: (number|null);

                /** NodePoolAutoscaling maxNodeCount */
                maxNodeCount?: (number|null);

                /** NodePoolAutoscaling autoprovisioned */
                autoprovisioned?: (boolean|null);

                /** NodePoolAutoscaling locationPolicy */
                locationPolicy?: (google.container.v1beta1.NodePoolAutoscaling.LocationPolicy|keyof typeof google.container.v1beta1.NodePoolAutoscaling.LocationPolicy|null);

                /** NodePoolAutoscaling totalMinNodeCount */
                totalMinNodeCount?: (number|null);

                /** NodePoolAutoscaling totalMaxNodeCount */
                totalMaxNodeCount?: (number|null);
            }

            /** Represents a NodePoolAutoscaling. */
            class NodePoolAutoscaling implements INodePoolAutoscaling {

                /**
                 * Constructs a new NodePoolAutoscaling.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.INodePoolAutoscaling);

                /** NodePoolAutoscaling enabled. */
                public enabled: boolean;

                /** NodePoolAutoscaling minNodeCount. */
                public minNodeCount: number;

                /** NodePoolAutoscaling maxNodeCount. */
                public maxNodeCount: number;

                /** NodePoolAutoscaling autoprovisioned. */
                public autoprovisioned: boolean;

                /** NodePoolAutoscaling locationPolicy. */
                public locationPolicy: (google.container.v1beta1.NodePoolAutoscaling.LocationPolicy|keyof typeof google.container.v1beta1.NodePoolAutoscaling.LocationPolicy);

                /** NodePoolAutoscaling totalMinNodeCount. */
                public totalMinNodeCount: number;

                /** NodePoolAutoscaling totalMaxNodeCount. */
                public totalMaxNodeCount: number;

                /**
                 * Creates a new NodePoolAutoscaling instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns NodePoolAutoscaling instance
                 */
                public static create(properties?: google.container.v1beta1.INodePoolAutoscaling): google.container.v1beta1.NodePoolAutoscaling;

                /**
                 * Encodes the specified NodePoolAutoscaling message. Does not implicitly {@link google.container.v1beta1.NodePoolAutoscaling.verify|verify} messages.
                 * @param message NodePoolAutoscaling message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.INodePoolAutoscaling, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified NodePoolAutoscaling message, length delimited. Does not implicitly {@link google.container.v1beta1.NodePoolAutoscaling.verify|verify} messages.
                 * @param message NodePoolAutoscaling message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.INodePoolAutoscaling, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a NodePoolAutoscaling message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns NodePoolAutoscaling
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.NodePoolAutoscaling;

                /**
                 * Decodes a NodePoolAutoscaling message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns NodePoolAutoscaling
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.NodePoolAutoscaling;

                /**
                 * Verifies a NodePoolAutoscaling message.
                 * @param message Plain 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 NodePoolAutoscaling message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns NodePoolAutoscaling
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.NodePoolAutoscaling;

                /**
                 * Creates a plain object from a NodePoolAutoscaling message. Also converts values to other types if specified.
                 * @param message NodePoolAutoscaling
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.NodePoolAutoscaling, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this NodePoolAutoscaling to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for NodePoolAutoscaling
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace NodePoolAutoscaling {

                /** LocationPolicy enum. */
                enum LocationPolicy {
                    LOCATION_POLICY_UNSPECIFIED = 0,
                    BALANCED = 1,
                    ANY = 2
                }
            }

            /** Properties of a SetLabelsRequest. */
            interface ISetLabelsRequest {

                /** SetLabelsRequest projectId */
                projectId?: (string|null);

                /** SetLabelsRequest zone */
                zone?: (string|null);

                /** SetLabelsRequest clusterId */
                clusterId?: (string|null);

                /** SetLabelsRequest resourceLabels */
                resourceLabels?: ({ [k: string]: string }|null);

                /** SetLabelsRequest labelFingerprint */
                labelFingerprint?: (string|null);

                /** SetLabelsRequest name */
                name?: (string|null);
            }

            /** Represents a SetLabelsRequest. */
            class SetLabelsRequest implements ISetLabelsRequest {

                /**
                 * Constructs a new SetLabelsRequest.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.ISetLabelsRequest);

                /** SetLabelsRequest projectId. */
                public projectId: string;

                /** SetLabelsRequest zone. */
                public zone: string;

                /** SetLabelsRequest clusterId. */
                public clusterId: string;

                /** SetLabelsRequest resourceLabels. */
                public resourceLabels: { [k: string]: string };

                /** SetLabelsRequest labelFingerprint. */
                public labelFingerprint: string;

                /** SetLabelsRequest name. */
                public name: string;

                /**
                 * Creates a new SetLabelsRequest instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns SetLabelsRequest instance
                 */
                public static create(properties?: google.container.v1beta1.ISetLabelsRequest): google.container.v1beta1.SetLabelsRequest;

                /**
                 * Encodes the specified SetLabelsRequest message. Does not implicitly {@link google.container.v1beta1.SetLabelsRequest.verify|verify} messages.
                 * @param message SetLabelsRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.ISetLabelsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified SetLabelsRequest message, length delimited. Does not implicitly {@link google.container.v1beta1.SetLabelsRequest.verify|verify} messages.
                 * @param message SetLabelsRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.ISetLabelsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a SetLabelsRequest message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns SetLabelsRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.SetLabelsRequest;

                /**
                 * Decodes a SetLabelsRequest message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns SetLabelsRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.SetLabelsRequest;

                /**
                 * Verifies a SetLabelsRequest message.
                 * @param message Plain 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 SetLabelsRequest message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns SetLabelsRequest
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.SetLabelsRequest;

                /**
                 * Creates a plain object from a SetLabelsRequest message. Also converts values to other types if specified.
                 * @param message SetLabelsRequest
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.SetLabelsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this SetLabelsRequest to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for SetLabelsRequest
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a SetLegacyAbacRequest. */
            interface ISetLegacyAbacRequest {

                /** SetLegacyAbacRequest projectId */
                projectId?: (string|null);

                /** SetLegacyAbacRequest zone */
                zone?: (string|null);

                /** SetLegacyAbacRequest clusterId */
                clusterId?: (string|null);

                /** SetLegacyAbacRequest enabled */
                enabled?: (boolean|null);

                /** SetLegacyAbacRequest name */
                name?: (string|null);
            }

            /** Represents a SetLegacyAbacRequest. */
            class SetLegacyAbacRequest implements ISetLegacyAbacRequest {

                /**
                 * Constructs a new SetLegacyAbacRequest.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.ISetLegacyAbacRequest);

                /** SetLegacyAbacRequest projectId. */
                public projectId: string;

                /** SetLegacyAbacRequest zone. */
                public zone: string;

                /** SetLegacyAbacRequest clusterId. */
                public clusterId: string;

                /** SetLegacyAbacRequest enabled. */
                public enabled: boolean;

                /** SetLegacyAbacRequest name. */
                public name: string;

                /**
                 * Creates a new SetLegacyAbacRequest instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns SetLegacyAbacRequest instance
                 */
                public static create(properties?: google.container.v1beta1.ISetLegacyAbacRequest): google.container.v1beta1.SetLegacyAbacRequest;

                /**
                 * Encodes the specified SetLegacyAbacRequest message. Does not implicitly {@link google.container.v1beta1.SetLegacyAbacRequest.verify|verify} messages.
                 * @param message SetLegacyAbacRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.ISetLegacyAbacRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified SetLegacyAbacRequest message, length delimited. Does not implicitly {@link google.container.v1beta1.SetLegacyAbacRequest.verify|verify} messages.
                 * @param message SetLegacyAbacRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.ISetLegacyAbacRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a SetLegacyAbacRequest message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns SetLegacyAbacRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.SetLegacyAbacRequest;

                /**
                 * Decodes a SetLegacyAbacRequest message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns SetLegacyAbacRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.SetLegacyAbacRequest;

                /**
                 * Verifies a SetLegacyAbacRequest message.
                 * @param message Plain 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 SetLegacyAbacRequest message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns SetLegacyAbacRequest
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.SetLegacyAbacRequest;

                /**
                 * Creates a plain object from a SetLegacyAbacRequest message. Also converts values to other types if specified.
                 * @param message SetLegacyAbacRequest
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.SetLegacyAbacRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this SetLegacyAbacRequest to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for SetLegacyAbacRequest
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a StartIPRotationRequest. */
            interface IStartIPRotationRequest {

                /** StartIPRotationRequest projectId */
                projectId?: (string|null);

                /** StartIPRotationRequest zone */
                zone?: (string|null);

                /** StartIPRotationRequest clusterId */
                clusterId?: (string|null);

                /** StartIPRotationRequest name */
                name?: (string|null);

                /** StartIPRotationRequest rotateCredentials */
                rotateCredentials?: (boolean|null);
            }

            /** Represents a StartIPRotationRequest. */
            class StartIPRotationRequest implements IStartIPRotationRequest {

                /**
                 * Constructs a new StartIPRotationRequest.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IStartIPRotationRequest);

                /** StartIPRotationRequest projectId. */
                public projectId: string;

                /** StartIPRotationRequest zone. */
                public zone: string;

                /** StartIPRotationRequest clusterId. */
                public clusterId: string;

                /** StartIPRotationRequest name. */
                public name: string;

                /** StartIPRotationRequest rotateCredentials. */
                public rotateCredentials: boolean;

                /**
                 * Creates a new StartIPRotationRequest instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns StartIPRotationRequest instance
                 */
                public static create(properties?: google.container.v1beta1.IStartIPRotationRequest): google.container.v1beta1.StartIPRotationRequest;

                /**
                 * Encodes the specified StartIPRotationRequest message. Does not implicitly {@link google.container.v1beta1.StartIPRotationRequest.verify|verify} messages.
                 * @param message StartIPRotationRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IStartIPRotationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified StartIPRotationRequest message, length delimited. Does not implicitly {@link google.container.v1beta1.StartIPRotationRequest.verify|verify} messages.
                 * @param message StartIPRotationRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IStartIPRotationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a StartIPRotationRequest message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns StartIPRotationRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.StartIPRotationRequest;

                /**
                 * Decodes a StartIPRotationRequest message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns StartIPRotationRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.StartIPRotationRequest;

                /**
                 * Verifies a StartIPRotationRequest message.
                 * @param message Plain 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 StartIPRotationRequest message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns StartIPRotationRequest
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.StartIPRotationRequest;

                /**
                 * Creates a plain object from a StartIPRotationRequest message. Also converts values to other types if specified.
                 * @param message StartIPRotationRequest
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.StartIPRotationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this StartIPRotationRequest to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for StartIPRotationRequest
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a CompleteIPRotationRequest. */
            interface ICompleteIPRotationRequest {

                /** CompleteIPRotationRequest projectId */
                projectId?: (string|null);

                /** CompleteIPRotationRequest zone */
                zone?: (string|null);

                /** CompleteIPRotationRequest clusterId */
                clusterId?: (string|null);

                /** CompleteIPRotationRequest name */
                name?: (string|null);
            }

            /** Represents a CompleteIPRotationRequest. */
            class CompleteIPRotationRequest implements ICompleteIPRotationRequest {

                /**
                 * Constructs a new CompleteIPRotationRequest.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.ICompleteIPRotationRequest);

                /** CompleteIPRotationRequest projectId. */
                public projectId: string;

                /** CompleteIPRotationRequest zone. */
                public zone: string;

                /** CompleteIPRotationRequest clusterId. */
                public clusterId: string;

                /** CompleteIPRotationRequest name. */
                public name: string;

                /**
                 * Creates a new CompleteIPRotationRequest instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns CompleteIPRotationRequest instance
                 */
                public static create(properties?: google.container.v1beta1.ICompleteIPRotationRequest): google.container.v1beta1.CompleteIPRotationRequest;

                /**
                 * Encodes the specified CompleteIPRotationRequest message. Does not implicitly {@link google.container.v1beta1.CompleteIPRotationRequest.verify|verify} messages.
                 * @param message CompleteIPRotationRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.ICompleteIPRotationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified CompleteIPRotationRequest message, length delimited. Does not implicitly {@link google.container.v1beta1.CompleteIPRotationRequest.verify|verify} messages.
                 * @param message CompleteIPRotationRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.ICompleteIPRotationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a CompleteIPRotationRequest message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns CompleteIPRotationRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.CompleteIPRotationRequest;

                /**
                 * Decodes a CompleteIPRotationRequest message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns CompleteIPRotationRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.CompleteIPRotationRequest;

                /**
                 * Verifies a CompleteIPRotationRequest message.
                 * @param message Plain 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 CompleteIPRotationRequest message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns CompleteIPRotationRequest
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.CompleteIPRotationRequest;

                /**
                 * Creates a plain object from a CompleteIPRotationRequest message. Also converts values to other types if specified.
                 * @param message CompleteIPRotationRequest
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.CompleteIPRotationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this CompleteIPRotationRequest to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for CompleteIPRotationRequest
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of an AcceleratorConfig. */
            interface IAcceleratorConfig {

                /** AcceleratorConfig acceleratorCount */
                acceleratorCount?: (number|Long|string|null);

                /** AcceleratorConfig acceleratorType */
                acceleratorType?: (string|null);

                /** AcceleratorConfig gpuPartitionSize */
                gpuPartitionSize?: (string|null);

                /** AcceleratorConfig maxTimeSharedClientsPerGpu */
                maxTimeSharedClientsPerGpu?: (number|Long|string|null);

                /** AcceleratorConfig gpuSharingConfig */
                gpuSharingConfig?: (google.container.v1beta1.IGPUSharingConfig|null);

                /** AcceleratorConfig gpuDriverInstallationConfig */
                gpuDriverInstallationConfig?: (google.container.v1beta1.IGPUDriverInstallationConfig|null);
            }

            /** Represents an AcceleratorConfig. */
            class AcceleratorConfig implements IAcceleratorConfig {

                /**
                 * Constructs a new AcceleratorConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IAcceleratorConfig);

                /** AcceleratorConfig acceleratorCount. */
                public acceleratorCount: (number|Long|string);

                /** AcceleratorConfig acceleratorType. */
                public acceleratorType: string;

                /** AcceleratorConfig gpuPartitionSize. */
                public gpuPartitionSize: string;

                /** AcceleratorConfig maxTimeSharedClientsPerGpu. */
                public maxTimeSharedClientsPerGpu: (number|Long|string);

                /** AcceleratorConfig gpuSharingConfig. */
                public gpuSharingConfig?: (google.container.v1beta1.IGPUSharingConfig|null);

                /** AcceleratorConfig gpuDriverInstallationConfig. */
                public gpuDriverInstallationConfig?: (google.container.v1beta1.IGPUDriverInstallationConfig|null);

                /**
                 * Creates a new AcceleratorConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns AcceleratorConfig instance
                 */
                public static create(properties?: google.container.v1beta1.IAcceleratorConfig): google.container.v1beta1.AcceleratorConfig;

                /**
                 * Encodes the specified AcceleratorConfig message. Does not implicitly {@link google.container.v1beta1.AcceleratorConfig.verify|verify} messages.
                 * @param message AcceleratorConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IAcceleratorConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified AcceleratorConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.AcceleratorConfig.verify|verify} messages.
                 * @param message AcceleratorConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IAcceleratorConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes an AcceleratorConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns AcceleratorConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.AcceleratorConfig;

                /**
                 * Decodes an AcceleratorConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns AcceleratorConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.AcceleratorConfig;

                /**
                 * Verifies an AcceleratorConfig message.
                 * @param message Plain 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 AcceleratorConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns AcceleratorConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.AcceleratorConfig;

                /**
                 * Creates a plain object from an AcceleratorConfig message. Also converts values to other types if specified.
                 * @param message AcceleratorConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.AcceleratorConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this AcceleratorConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for AcceleratorConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a GPUSharingConfig. */
            interface IGPUSharingConfig {

                /** GPUSharingConfig maxSharedClientsPerGpu */
                maxSharedClientsPerGpu?: (number|Long|string|null);

                /** GPUSharingConfig gpuSharingStrategy */
                gpuSharingStrategy?: (google.container.v1beta1.GPUSharingConfig.GPUSharingStrategy|keyof typeof google.container.v1beta1.GPUSharingConfig.GPUSharingStrategy|null);
            }

            /** Represents a GPUSharingConfig. */
            class GPUSharingConfig implements IGPUSharingConfig {

                /**
                 * Constructs a new GPUSharingConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IGPUSharingConfig);

                /** GPUSharingConfig maxSharedClientsPerGpu. */
                public maxSharedClientsPerGpu: (number|Long|string);

                /** GPUSharingConfig gpuSharingStrategy. */
                public gpuSharingStrategy?: (google.container.v1beta1.GPUSharingConfig.GPUSharingStrategy|keyof typeof google.container.v1beta1.GPUSharingConfig.GPUSharingStrategy|null);

                /**
                 * Creates a new GPUSharingConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns GPUSharingConfig instance
                 */
                public static create(properties?: google.container.v1beta1.IGPUSharingConfig): google.container.v1beta1.GPUSharingConfig;

                /**
                 * Encodes the specified GPUSharingConfig message. Does not implicitly {@link google.container.v1beta1.GPUSharingConfig.verify|verify} messages.
                 * @param message GPUSharingConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IGPUSharingConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified GPUSharingConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.GPUSharingConfig.verify|verify} messages.
                 * @param message GPUSharingConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IGPUSharingConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a GPUSharingConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns GPUSharingConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.GPUSharingConfig;

                /**
                 * Decodes a GPUSharingConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns GPUSharingConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.GPUSharingConfig;

                /**
                 * Verifies a GPUSharingConfig message.
                 * @param message Plain 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 GPUSharingConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns GPUSharingConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.GPUSharingConfig;

                /**
                 * Creates a plain object from a GPUSharingConfig message. Also converts values to other types if specified.
                 * @param message GPUSharingConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.GPUSharingConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this GPUSharingConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for GPUSharingConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace GPUSharingConfig {

                /** GPUSharingStrategy enum. */
                enum GPUSharingStrategy {
                    GPU_SHARING_STRATEGY_UNSPECIFIED = 0,
                    TIME_SHARING = 1,
                    MPS = 2
                }
            }

            /** Properties of a GPUDriverInstallationConfig. */
            interface IGPUDriverInstallationConfig {

                /** GPUDriverInstallationConfig gpuDriverVersion */
                gpuDriverVersion?: (google.container.v1beta1.GPUDriverInstallationConfig.GPUDriverVersion|keyof typeof google.container.v1beta1.GPUDriverInstallationConfig.GPUDriverVersion|null);
            }

            /** Represents a GPUDriverInstallationConfig. */
            class GPUDriverInstallationConfig implements IGPUDriverInstallationConfig {

                /**
                 * Constructs a new GPUDriverInstallationConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IGPUDriverInstallationConfig);

                /** GPUDriverInstallationConfig gpuDriverVersion. */
                public gpuDriverVersion?: (google.container.v1beta1.GPUDriverInstallationConfig.GPUDriverVersion|keyof typeof google.container.v1beta1.GPUDriverInstallationConfig.GPUDriverVersion|null);

                /**
                 * Creates a new GPUDriverInstallationConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns GPUDriverInstallationConfig instance
                 */
                public static create(properties?: google.container.v1beta1.IGPUDriverInstallationConfig): google.container.v1beta1.GPUDriverInstallationConfig;

                /**
                 * Encodes the specified GPUDriverInstallationConfig message. Does not implicitly {@link google.container.v1beta1.GPUDriverInstallationConfig.verify|verify} messages.
                 * @param message GPUDriverInstallationConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IGPUDriverInstallationConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified GPUDriverInstallationConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.GPUDriverInstallationConfig.verify|verify} messages.
                 * @param message GPUDriverInstallationConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IGPUDriverInstallationConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a GPUDriverInstallationConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns GPUDriverInstallationConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.GPUDriverInstallationConfig;

                /**
                 * Decodes a GPUDriverInstallationConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns GPUDriverInstallationConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.GPUDriverInstallationConfig;

                /**
                 * Verifies a GPUDriverInstallationConfig message.
                 * @param message Plain 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 GPUDriverInstallationConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns GPUDriverInstallationConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.GPUDriverInstallationConfig;

                /**
                 * Creates a plain object from a GPUDriverInstallationConfig message. Also converts values to other types if specified.
                 * @param message GPUDriverInstallationConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.GPUDriverInstallationConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this GPUDriverInstallationConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for GPUDriverInstallationConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace GPUDriverInstallationConfig {

                /** GPUDriverVersion enum. */
                enum GPUDriverVersion {
                    GPU_DRIVER_VERSION_UNSPECIFIED = 0,
                    INSTALLATION_DISABLED = 1,
                    DEFAULT = 2,
                    LATEST = 3
                }
            }

            /** Properties of a ManagedPrometheusConfig. */
            interface IManagedPrometheusConfig {

                /** ManagedPrometheusConfig enabled */
                enabled?: (boolean|null);

                /** ManagedPrometheusConfig autoMonitoringConfig */
                autoMonitoringConfig?: (google.container.v1beta1.IAutoMonitoringConfig|null);
            }

            /** Represents a ManagedPrometheusConfig. */
            class ManagedPrometheusConfig implements IManagedPrometheusConfig {

                /**
                 * Constructs a new ManagedPrometheusConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IManagedPrometheusConfig);

                /** ManagedPrometheusConfig enabled. */
                public enabled: boolean;

                /** ManagedPrometheusConfig autoMonitoringConfig. */
                public autoMonitoringConfig?: (google.container.v1beta1.IAutoMonitoringConfig|null);

                /**
                 * Creates a new ManagedPrometheusConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ManagedPrometheusConfig instance
                 */
                public static create(properties?: google.container.v1beta1.IManagedPrometheusConfig): google.container.v1beta1.ManagedPrometheusConfig;

                /**
                 * Encodes the specified ManagedPrometheusConfig message. Does not implicitly {@link google.container.v1beta1.ManagedPrometheusConfig.verify|verify} messages.
                 * @param message ManagedPrometheusConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IManagedPrometheusConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified ManagedPrometheusConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.ManagedPrometheusConfig.verify|verify} messages.
                 * @param message ManagedPrometheusConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IManagedPrometheusConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a ManagedPrometheusConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ManagedPrometheusConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.ManagedPrometheusConfig;

                /**
                 * Decodes a ManagedPrometheusConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ManagedPrometheusConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.ManagedPrometheusConfig;

                /**
                 * Verifies a ManagedPrometheusConfig message.
                 * @param message Plain 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 ManagedPrometheusConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ManagedPrometheusConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.ManagedPrometheusConfig;

                /**
                 * Creates a plain object from a ManagedPrometheusConfig message. Also converts values to other types if specified.
                 * @param message ManagedPrometheusConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.ManagedPrometheusConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ManagedPrometheusConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for ManagedPrometheusConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of an AutoMonitoringConfig. */
            interface IAutoMonitoringConfig {

                /** AutoMonitoringConfig scope */
                scope?: (google.container.v1beta1.AutoMonitoringConfig.Scope|keyof typeof google.container.v1beta1.AutoMonitoringConfig.Scope|null);
            }

            /** Represents an AutoMonitoringConfig. */
            class AutoMonitoringConfig implements IAutoMonitoringConfig {

                /**
                 * Constructs a new AutoMonitoringConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IAutoMonitoringConfig);

                /** AutoMonitoringConfig scope. */
                public scope: (google.container.v1beta1.AutoMonitoringConfig.Scope|keyof typeof google.container.v1beta1.AutoMonitoringConfig.Scope);

                /**
                 * Creates a new AutoMonitoringConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns AutoMonitoringConfig instance
                 */
                public static create(properties?: google.container.v1beta1.IAutoMonitoringConfig): google.container.v1beta1.AutoMonitoringConfig;

                /**
                 * Encodes the specified AutoMonitoringConfig message. Does not implicitly {@link google.container.v1beta1.AutoMonitoringConfig.verify|verify} messages.
                 * @param message AutoMonitoringConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IAutoMonitoringConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified AutoMonitoringConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.AutoMonitoringConfig.verify|verify} messages.
                 * @param message AutoMonitoringConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IAutoMonitoringConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes an AutoMonitoringConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns AutoMonitoringConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.AutoMonitoringConfig;

                /**
                 * Decodes an AutoMonitoringConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns AutoMonitoringConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.AutoMonitoringConfig;

                /**
                 * Verifies an AutoMonitoringConfig message.
                 * @param message Plain 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 AutoMonitoringConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns AutoMonitoringConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.AutoMonitoringConfig;

                /**
                 * Creates a plain object from an AutoMonitoringConfig message. Also converts values to other types if specified.
                 * @param message AutoMonitoringConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.AutoMonitoringConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this AutoMonitoringConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for AutoMonitoringConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace AutoMonitoringConfig {

                /** Scope enum. */
                enum Scope {
                    SCOPE_UNSPECIFIED = 0,
                    ALL = 1,
                    NONE = 2
                }
            }

            /** Properties of a WorkloadMetadataConfig. */
            interface IWorkloadMetadataConfig {

                /** WorkloadMetadataConfig nodeMetadata */
                nodeMetadata?: (google.container.v1beta1.WorkloadMetadataConfig.NodeMetadata|keyof typeof google.container.v1beta1.WorkloadMetadataConfig.NodeMetadata|null);

                /** WorkloadMetadataConfig mode */
                mode?: (google.container.v1beta1.WorkloadMetadataConfig.Mode|keyof typeof google.container.v1beta1.WorkloadMetadataConfig.Mode|null);
            }

            /** Represents a WorkloadMetadataConfig. */
            class WorkloadMetadataConfig implements IWorkloadMetadataConfig {

                /**
                 * Constructs a new WorkloadMetadataConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IWorkloadMetadataConfig);

                /** WorkloadMetadataConfig nodeMetadata. */
                public nodeMetadata: (google.container.v1beta1.WorkloadMetadataConfig.NodeMetadata|keyof typeof google.container.v1beta1.WorkloadMetadataConfig.NodeMetadata);

                /** WorkloadMetadataConfig mode. */
                public mode: (google.container.v1beta1.WorkloadMetadataConfig.Mode|keyof typeof google.container.v1beta1.WorkloadMetadataConfig.Mode);

                /**
                 * Creates a new WorkloadMetadataConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns WorkloadMetadataConfig instance
                 */
                public static create(properties?: google.container.v1beta1.IWorkloadMetadataConfig): google.container.v1beta1.WorkloadMetadataConfig;

                /**
                 * Encodes the specified WorkloadMetadataConfig message. Does not implicitly {@link google.container.v1beta1.WorkloadMetadataConfig.verify|verify} messages.
                 * @param message WorkloadMetadataConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IWorkloadMetadataConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified WorkloadMetadataConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.WorkloadMetadataConfig.verify|verify} messages.
                 * @param message WorkloadMetadataConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IWorkloadMetadataConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a WorkloadMetadataConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns WorkloadMetadataConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.WorkloadMetadataConfig;

                /**
                 * Decodes a WorkloadMetadataConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns WorkloadMetadataConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.WorkloadMetadataConfig;

                /**
                 * Verifies a WorkloadMetadataConfig message.
                 * @param message Plain 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 WorkloadMetadataConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns WorkloadMetadataConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.WorkloadMetadataConfig;

                /**
                 * Creates a plain object from a WorkloadMetadataConfig message. Also converts values to other types if specified.
                 * @param message WorkloadMetadataConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.WorkloadMetadataConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this WorkloadMetadataConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for WorkloadMetadataConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace WorkloadMetadataConfig {

                /** NodeMetadata enum. */
                enum NodeMetadata {
                    UNSPECIFIED = 0,
                    SECURE = 1,
                    EXPOSE = 2,
                    GKE_METADATA_SERVER = 3
                }

                /** Mode enum. */
                enum Mode {
                    MODE_UNSPECIFIED = 0,
                    GCE_METADATA = 1,
                    GKE_METADATA = 2
                }
            }

            /** Properties of a SetNetworkPolicyRequest. */
            interface ISetNetworkPolicyRequest {

                /** SetNetworkPolicyRequest projectId */
                projectId?: (string|null);

                /** SetNetworkPolicyRequest zone */
                zone?: (string|null);

                /** SetNetworkPolicyRequest clusterId */
                clusterId?: (string|null);

                /** SetNetworkPolicyRequest networkPolicy */
                networkPolicy?: (google.container.v1beta1.INetworkPolicy|null);

                /** SetNetworkPolicyRequest name */
                name?: (string|null);
            }

            /** Represents a SetNetworkPolicyRequest. */
            class SetNetworkPolicyRequest implements ISetNetworkPolicyRequest {

                /**
                 * Constructs a new SetNetworkPolicyRequest.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.ISetNetworkPolicyRequest);

                /** SetNetworkPolicyRequest projectId. */
                public projectId: string;

                /** SetNetworkPolicyRequest zone. */
                public zone: string;

                /** SetNetworkPolicyRequest clusterId. */
                public clusterId: string;

                /** SetNetworkPolicyRequest networkPolicy. */
                public networkPolicy?: (google.container.v1beta1.INetworkPolicy|null);

                /** SetNetworkPolicyRequest name. */
                public name: string;

                /**
                 * Creates a new SetNetworkPolicyRequest instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns SetNetworkPolicyRequest instance
                 */
                public static create(properties?: google.container.v1beta1.ISetNetworkPolicyRequest): google.container.v1beta1.SetNetworkPolicyRequest;

                /**
                 * Encodes the specified SetNetworkPolicyRequest message. Does not implicitly {@link google.container.v1beta1.SetNetworkPolicyRequest.verify|verify} messages.
                 * @param message SetNetworkPolicyRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.ISetNetworkPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified SetNetworkPolicyRequest message, length delimited. Does not implicitly {@link google.container.v1beta1.SetNetworkPolicyRequest.verify|verify} messages.
                 * @param message SetNetworkPolicyRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.ISetNetworkPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a SetNetworkPolicyRequest message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns SetNetworkPolicyRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.SetNetworkPolicyRequest;

                /**
                 * Decodes a SetNetworkPolicyRequest message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns SetNetworkPolicyRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.SetNetworkPolicyRequest;

                /**
                 * Verifies a SetNetworkPolicyRequest message.
                 * @param message Plain 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 SetNetworkPolicyRequest message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns SetNetworkPolicyRequest
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.SetNetworkPolicyRequest;

                /**
                 * Creates a plain object from a SetNetworkPolicyRequest message. Also converts values to other types if specified.
                 * @param message SetNetworkPolicyRequest
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.SetNetworkPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this SetNetworkPolicyRequest to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for SetNetworkPolicyRequest
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a SetMaintenancePolicyRequest. */
            interface ISetMaintenancePolicyRequest {

                /** SetMaintenancePolicyRequest projectId */
                projectId?: (string|null);

                /** SetMaintenancePolicyRequest zone */
                zone?: (string|null);

                /** SetMaintenancePolicyRequest clusterId */
                clusterId?: (string|null);

                /** SetMaintenancePolicyRequest maintenancePolicy */
                maintenancePolicy?: (google.container.v1beta1.IMaintenancePolicy|null);

                /** SetMaintenancePolicyRequest name */
                name?: (string|null);
            }

            /** Represents a SetMaintenancePolicyRequest. */
            class SetMaintenancePolicyRequest implements ISetMaintenancePolicyRequest {

                /**
                 * Constructs a new SetMaintenancePolicyRequest.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.ISetMaintenancePolicyRequest);

                /** SetMaintenancePolicyRequest projectId. */
                public projectId: string;

                /** SetMaintenancePolicyRequest zone. */
                public zone: string;

                /** SetMaintenancePolicyRequest clusterId. */
                public clusterId: string;

                /** SetMaintenancePolicyRequest maintenancePolicy. */
                public maintenancePolicy?: (google.container.v1beta1.IMaintenancePolicy|null);

                /** SetMaintenancePolicyRequest name. */
                public name: string;

                /**
                 * Creates a new SetMaintenancePolicyRequest instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns SetMaintenancePolicyRequest instance
                 */
                public static create(properties?: google.container.v1beta1.ISetMaintenancePolicyRequest): google.container.v1beta1.SetMaintenancePolicyRequest;

                /**
                 * Encodes the specified SetMaintenancePolicyRequest message. Does not implicitly {@link google.container.v1beta1.SetMaintenancePolicyRequest.verify|verify} messages.
                 * @param message SetMaintenancePolicyRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.ISetMaintenancePolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified SetMaintenancePolicyRequest message, length delimited. Does not implicitly {@link google.container.v1beta1.SetMaintenancePolicyRequest.verify|verify} messages.
                 * @param message SetMaintenancePolicyRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.ISetMaintenancePolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a SetMaintenancePolicyRequest message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns SetMaintenancePolicyRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.SetMaintenancePolicyRequest;

                /**
                 * Decodes a SetMaintenancePolicyRequest message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns SetMaintenancePolicyRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.SetMaintenancePolicyRequest;

                /**
                 * Verifies a SetMaintenancePolicyRequest message.
                 * @param message Plain 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 SetMaintenancePolicyRequest message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns SetMaintenancePolicyRequest
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.SetMaintenancePolicyRequest;

                /**
                 * Creates a plain object from a SetMaintenancePolicyRequest message. Also converts values to other types if specified.
                 * @param message SetMaintenancePolicyRequest
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.SetMaintenancePolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this SetMaintenancePolicyRequest to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for SetMaintenancePolicyRequest
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a ListLocationsRequest. */
            interface IListLocationsRequest {

                /** ListLocationsRequest parent */
                parent?: (string|null);
            }

            /** Represents a ListLocationsRequest. */
            class ListLocationsRequest implements IListLocationsRequest {

                /**
                 * Constructs a new ListLocationsRequest.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IListLocationsRequest);

                /** ListLocationsRequest parent. */
                public parent: string;

                /**
                 * Creates a new ListLocationsRequest instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ListLocationsRequest instance
                 */
                public static create(properties?: google.container.v1beta1.IListLocationsRequest): google.container.v1beta1.ListLocationsRequest;

                /**
                 * Encodes the specified ListLocationsRequest message. Does not implicitly {@link google.container.v1beta1.ListLocationsRequest.verify|verify} messages.
                 * @param message ListLocationsRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IListLocationsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified ListLocationsRequest message, length delimited. Does not implicitly {@link google.container.v1beta1.ListLocationsRequest.verify|verify} messages.
                 * @param message ListLocationsRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IListLocationsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a ListLocationsRequest message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ListLocationsRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.ListLocationsRequest;

                /**
                 * Decodes a ListLocationsRequest message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ListLocationsRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.ListLocationsRequest;

                /**
                 * Verifies a ListLocationsRequest message.
                 * @param message Plain 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 ListLocationsRequest message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ListLocationsRequest
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.ListLocationsRequest;

                /**
                 * Creates a plain object from a ListLocationsRequest message. Also converts values to other types if specified.
                 * @param message ListLocationsRequest
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.ListLocationsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ListLocationsRequest to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for ListLocationsRequest
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a ListLocationsResponse. */
            interface IListLocationsResponse {

                /** ListLocationsResponse locations */
                locations?: (google.container.v1beta1.ILocation[]|null);

                /** ListLocationsResponse nextPageToken */
                nextPageToken?: (string|null);
            }

            /** Represents a ListLocationsResponse. */
            class ListLocationsResponse implements IListLocationsResponse {

                /**
                 * Constructs a new ListLocationsResponse.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IListLocationsResponse);

                /** ListLocationsResponse locations. */
                public locations: google.container.v1beta1.ILocation[];

                /** ListLocationsResponse nextPageToken. */
                public nextPageToken: string;

                /**
                 * Creates a new ListLocationsResponse instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ListLocationsResponse instance
                 */
                public static create(properties?: google.container.v1beta1.IListLocationsResponse): google.container.v1beta1.ListLocationsResponse;

                /**
                 * Encodes the specified ListLocationsResponse message. Does not implicitly {@link google.container.v1beta1.ListLocationsResponse.verify|verify} messages.
                 * @param message ListLocationsResponse message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IListLocationsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified ListLocationsResponse message, length delimited. Does not implicitly {@link google.container.v1beta1.ListLocationsResponse.verify|verify} messages.
                 * @param message ListLocationsResponse message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IListLocationsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a ListLocationsResponse message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ListLocationsResponse
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.ListLocationsResponse;

                /**
                 * Decodes a ListLocationsResponse message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ListLocationsResponse
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.ListLocationsResponse;

                /**
                 * Verifies a ListLocationsResponse message.
                 * @param message Plain 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 ListLocationsResponse message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ListLocationsResponse
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.ListLocationsResponse;

                /**
                 * Creates a plain object from a ListLocationsResponse message. Also converts values to other types if specified.
                 * @param message ListLocationsResponse
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.ListLocationsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ListLocationsResponse to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for ListLocationsResponse
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a Location. */
            interface ILocation {

                /** Location type */
                type?: (google.container.v1beta1.Location.LocationType|keyof typeof google.container.v1beta1.Location.LocationType|null);

                /** Location name */
                name?: (string|null);

                /** Location recommended */
                recommended?: (boolean|null);
            }

            /** Represents a Location. */
            class Location implements ILocation {

                /**
                 * Constructs a new Location.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.ILocation);

                /** Location type. */
                public type: (google.container.v1beta1.Location.LocationType|keyof typeof google.container.v1beta1.Location.LocationType);

                /** Location name. */
                public name: string;

                /** Location recommended. */
                public recommended: boolean;

                /**
                 * Creates a new Location instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns Location instance
                 */
                public static create(properties?: google.container.v1beta1.ILocation): google.container.v1beta1.Location;

                /**
                 * Encodes the specified Location message. Does not implicitly {@link google.container.v1beta1.Location.verify|verify} messages.
                 * @param message Location message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.ILocation, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified Location message, length delimited. Does not implicitly {@link google.container.v1beta1.Location.verify|verify} messages.
                 * @param message Location message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.ILocation, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a Location message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns Location
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.Location;

                /**
                 * Decodes a Location message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns Location
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.Location;

                /**
                 * Verifies a Location message.
                 * @param message Plain 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 Location message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns Location
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.Location;

                /**
                 * Creates a plain object from a Location message. Also converts values to other types if specified.
                 * @param message Location
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.Location, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this Location to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for Location
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace Location {

                /** LocationType enum. */
                enum LocationType {
                    LOCATION_TYPE_UNSPECIFIED = 0,
                    ZONE = 1,
                    REGION = 2
                }
            }

            /** Properties of a StatusCondition. */
            interface IStatusCondition {

                /** StatusCondition code */
                code?: (google.container.v1beta1.StatusCondition.Code|keyof typeof google.container.v1beta1.StatusCondition.Code|null);

                /** StatusCondition message */
                message?: (string|null);

                /** StatusCondition canonicalCode */
                canonicalCode?: (google.rpc.Code|keyof typeof google.rpc.Code|null);
            }

            /** Represents a StatusCondition. */
            class StatusCondition implements IStatusCondition {

                /**
                 * Constructs a new StatusCondition.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IStatusCondition);

                /** StatusCondition code. */
                public code: (google.container.v1beta1.StatusCondition.Code|keyof typeof google.container.v1beta1.StatusCondition.Code);

                /** StatusCondition message. */
                public message: string;

                /** StatusCondition canonicalCode. */
                public canonicalCode: (google.rpc.Code|keyof typeof google.rpc.Code);

                /**
                 * Creates a new StatusCondition instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns StatusCondition instance
                 */
                public static create(properties?: google.container.v1beta1.IStatusCondition): google.container.v1beta1.StatusCondition;

                /**
                 * Encodes the specified StatusCondition message. Does not implicitly {@link google.container.v1beta1.StatusCondition.verify|verify} messages.
                 * @param message StatusCondition message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IStatusCondition, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified StatusCondition message, length delimited. Does not implicitly {@link google.container.v1beta1.StatusCondition.verify|verify} messages.
                 * @param message StatusCondition message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IStatusCondition, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a StatusCondition message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns StatusCondition
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.StatusCondition;

                /**
                 * Decodes a StatusCondition message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns StatusCondition
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.StatusCondition;

                /**
                 * Verifies a StatusCondition message.
                 * @param message Plain 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 StatusCondition message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns StatusCondition
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.StatusCondition;

                /**
                 * Creates a plain object from a StatusCondition message. Also converts values to other types if specified.
                 * @param message StatusCondition
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.StatusCondition, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this StatusCondition to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for StatusCondition
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace StatusCondition {

                /** Code enum. */
                enum Code {
                    UNKNOWN = 0,
                    GCE_STOCKOUT = 1,
                    GKE_SERVICE_ACCOUNT_DELETED = 2,
                    GCE_QUOTA_EXCEEDED = 3,
                    SET_BY_OPERATOR = 4,
                    CLOUD_KMS_KEY_ERROR = 7,
                    CA_EXPIRING = 9,
                    NODE_SERVICE_ACCOUNT_MISSING_PERMISSIONS = 10,
                    CLOUD_KMS_KEY_DESTROYED = 11
                }
            }

            /** Properties of a NetworkConfig. */
            interface INetworkConfig {

                /** NetworkConfig network */
                network?: (string|null);

                /** NetworkConfig subnetwork */
                subnetwork?: (string|null);

                /** NetworkConfig enableIntraNodeVisibility */
                enableIntraNodeVisibility?: (boolean|null);

                /** NetworkConfig defaultSnatStatus */
                defaultSnatStatus?: (google.container.v1beta1.IDefaultSnatStatus|null);

                /** NetworkConfig enableL4ilbSubsetting */
                enableL4ilbSubsetting?: (boolean|null);

                /** NetworkConfig datapathProvider */
                datapathProvider?: (google.container.v1beta1.DatapathProvider|keyof typeof google.container.v1beta1.DatapathProvider|null);

                /** NetworkConfig privateIpv6GoogleAccess */
                privateIpv6GoogleAccess?: (google.container.v1beta1.PrivateIPv6GoogleAccess|keyof typeof google.container.v1beta1.PrivateIPv6GoogleAccess|null);

                /** NetworkConfig dnsConfig */
                dnsConfig?: (google.container.v1beta1.IDNSConfig|null);

                /** NetworkConfig serviceExternalIpsConfig */
                serviceExternalIpsConfig?: (google.container.v1beta1.IServiceExternalIPsConfig|null);

                /** NetworkConfig gatewayApiConfig */
                gatewayApiConfig?: (google.container.v1beta1.IGatewayAPIConfig|null);

                /** NetworkConfig enableMultiNetworking */
                enableMultiNetworking?: (boolean|null);

                /** NetworkConfig networkPerformanceConfig */
                networkPerformanceConfig?: (google.container.v1beta1.NetworkConfig.IClusterNetworkPerformanceConfig|null);

                /** NetworkConfig enableFqdnNetworkPolicy */
                enableFqdnNetworkPolicy?: (boolean|null);

                /** NetworkConfig inTransitEncryptionConfig */
                inTransitEncryptionConfig?: (google.container.v1beta1.InTransitEncryptionConfig|keyof typeof google.container.v1beta1.InTransitEncryptionConfig|null);

                /** NetworkConfig enableCiliumClusterwideNetworkPolicy */
                enableCiliumClusterwideNetworkPolicy?: (boolean|null);

                /** NetworkConfig defaultEnablePrivateNodes */
                defaultEnablePrivateNodes?: (boolean|null);

                /** NetworkConfig disableL4LbFirewallReconciliation */
                disableL4LbFirewallReconciliation?: (boolean|null);
            }

            /** Represents a NetworkConfig. */
            class NetworkConfig implements INetworkConfig {

                /**
                 * Constructs a new NetworkConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.INetworkConfig);

                /** NetworkConfig network. */
                public network: string;

                /** NetworkConfig subnetwork. */
                public subnetwork: string;

                /** NetworkConfig enableIntraNodeVisibility. */
                public enableIntraNodeVisibility: boolean;

                /** NetworkConfig defaultSnatStatus. */
                public defaultSnatStatus?: (google.container.v1beta1.IDefaultSnatStatus|null);

                /** NetworkConfig enableL4ilbSubsetting. */
                public enableL4ilbSubsetting: boolean;

                /** NetworkConfig datapathProvider. */
                public datapathProvider: (google.container.v1beta1.DatapathProvider|keyof typeof google.container.v1beta1.DatapathProvider);

                /** NetworkConfig privateIpv6GoogleAccess. */
                public privateIpv6GoogleAccess: (google.container.v1beta1.PrivateIPv6GoogleAccess|keyof typeof google.container.v1beta1.PrivateIPv6GoogleAccess);

                /** NetworkConfig dnsConfig. */
                public dnsConfig?: (google.container.v1beta1.IDNSConfig|null);

                /** NetworkConfig serviceExternalIpsConfig. */
                public serviceExternalIpsConfig?: (google.container.v1beta1.IServiceExternalIPsConfig|null);

                /** NetworkConfig gatewayApiConfig. */
                public gatewayApiConfig?: (google.container.v1beta1.IGatewayAPIConfig|null);

                /** NetworkConfig enableMultiNetworking. */
                public enableMultiNetworking: boolean;

                /** NetworkConfig networkPerformanceConfig. */
                public networkPerformanceConfig?: (google.container.v1beta1.NetworkConfig.IClusterNetworkPerformanceConfig|null);

                /** NetworkConfig enableFqdnNetworkPolicy. */
                public enableFqdnNetworkPolicy?: (boolean|null);

                /** NetworkConfig inTransitEncryptionConfig. */
                public inTransitEncryptionConfig?: (google.container.v1beta1.InTransitEncryptionConfig|keyof typeof google.container.v1beta1.InTransitEncryptionConfig|null);

                /** NetworkConfig enableCiliumClusterwideNetworkPolicy. */
                public enableCiliumClusterwideNetworkPolicy?: (boolean|null);

                /** NetworkConfig defaultEnablePrivateNodes. */
                public defaultEnablePrivateNodes?: (boolean|null);

                /** NetworkConfig disableL4LbFirewallReconciliation. */
                public disableL4LbFirewallReconciliation?: (boolean|null);

                /**
                 * Creates a new NetworkConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns NetworkConfig instance
                 */
                public static create(properties?: google.container.v1beta1.INetworkConfig): google.container.v1beta1.NetworkConfig;

                /**
                 * Encodes the specified NetworkConfig message. Does not implicitly {@link google.container.v1beta1.NetworkConfig.verify|verify} messages.
                 * @param message NetworkConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.INetworkConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified NetworkConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.NetworkConfig.verify|verify} messages.
                 * @param message NetworkConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.INetworkConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a NetworkConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns NetworkConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.NetworkConfig;

                /**
                 * Decodes a NetworkConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns NetworkConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.NetworkConfig;

                /**
                 * Verifies a NetworkConfig message.
                 * @param message Plain 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 NetworkConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns NetworkConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.NetworkConfig;

                /**
                 * Creates a plain object from a NetworkConfig message. Also converts values to other types if specified.
                 * @param message NetworkConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.NetworkConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this NetworkConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for NetworkConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace NetworkConfig {

                /** Properties of a ClusterNetworkPerformanceConfig. */
                interface IClusterNetworkPerformanceConfig {

                    /** ClusterNetworkPerformanceConfig totalEgressBandwidthTier */
                    totalEgressBandwidthTier?: (google.container.v1beta1.NetworkConfig.ClusterNetworkPerformanceConfig.Tier|keyof typeof google.container.v1beta1.NetworkConfig.ClusterNetworkPerformanceConfig.Tier|null);
                }

                /** Represents a ClusterNetworkPerformanceConfig. */
                class ClusterNetworkPerformanceConfig implements IClusterNetworkPerformanceConfig {

                    /**
                     * Constructs a new ClusterNetworkPerformanceConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.container.v1beta1.NetworkConfig.IClusterNetworkPerformanceConfig);

                    /** ClusterNetworkPerformanceConfig totalEgressBandwidthTier. */
                    public totalEgressBandwidthTier?: (google.container.v1beta1.NetworkConfig.ClusterNetworkPerformanceConfig.Tier|keyof typeof google.container.v1beta1.NetworkConfig.ClusterNetworkPerformanceConfig.Tier|null);

                    /**
                     * Creates a new ClusterNetworkPerformanceConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ClusterNetworkPerformanceConfig instance
                     */
                    public static create(properties?: google.container.v1beta1.NetworkConfig.IClusterNetworkPerformanceConfig): google.container.v1beta1.NetworkConfig.ClusterNetworkPerformanceConfig;

                    /**
                     * Encodes the specified ClusterNetworkPerformanceConfig message. Does not implicitly {@link google.container.v1beta1.NetworkConfig.ClusterNetworkPerformanceConfig.verify|verify} messages.
                     * @param message ClusterNetworkPerformanceConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.container.v1beta1.NetworkConfig.IClusterNetworkPerformanceConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ClusterNetworkPerformanceConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.NetworkConfig.ClusterNetworkPerformanceConfig.verify|verify} messages.
                     * @param message ClusterNetworkPerformanceConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.container.v1beta1.NetworkConfig.IClusterNetworkPerformanceConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ClusterNetworkPerformanceConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ClusterNetworkPerformanceConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.NetworkConfig.ClusterNetworkPerformanceConfig;

                    /**
                     * Decodes a ClusterNetworkPerformanceConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ClusterNetworkPerformanceConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.NetworkConfig.ClusterNetworkPerformanceConfig;

                    /**
                     * Verifies a ClusterNetworkPerformanceConfig message.
                     * @param message Plain 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 ClusterNetworkPerformanceConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ClusterNetworkPerformanceConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.container.v1beta1.NetworkConfig.ClusterNetworkPerformanceConfig;

                    /**
                     * Creates a plain object from a ClusterNetworkPerformanceConfig message. Also converts values to other types if specified.
                     * @param message ClusterNetworkPerformanceConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.container.v1beta1.NetworkConfig.ClusterNetworkPerformanceConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ClusterNetworkPerformanceConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ClusterNetworkPerformanceConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ClusterNetworkPerformanceConfig {

                    /** Tier enum. */
                    enum Tier {
                        TIER_UNSPECIFIED = 0,
                        TIER_1 = 1
                    }
                }
            }

            /** Properties of a GatewayAPIConfig. */
            interface IGatewayAPIConfig {

                /** GatewayAPIConfig channel */
                channel?: (google.container.v1beta1.GatewayAPIConfig.Channel|keyof typeof google.container.v1beta1.GatewayAPIConfig.Channel|null);
            }

            /** Represents a GatewayAPIConfig. */
            class GatewayAPIConfig implements IGatewayAPIConfig {

                /**
                 * Constructs a new GatewayAPIConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IGatewayAPIConfig);

                /** GatewayAPIConfig channel. */
                public channel: (google.container.v1beta1.GatewayAPIConfig.Channel|keyof typeof google.container.v1beta1.GatewayAPIConfig.Channel);

                /**
                 * Creates a new GatewayAPIConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns GatewayAPIConfig instance
                 */
                public static create(properties?: google.container.v1beta1.IGatewayAPIConfig): google.container.v1beta1.GatewayAPIConfig;

                /**
                 * Encodes the specified GatewayAPIConfig message. Does not implicitly {@link google.container.v1beta1.GatewayAPIConfig.verify|verify} messages.
                 * @param message GatewayAPIConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IGatewayAPIConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified GatewayAPIConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.GatewayAPIConfig.verify|verify} messages.
                 * @param message GatewayAPIConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IGatewayAPIConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a GatewayAPIConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns GatewayAPIConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.GatewayAPIConfig;

                /**
                 * Decodes a GatewayAPIConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns GatewayAPIConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.GatewayAPIConfig;

                /**
                 * Verifies a GatewayAPIConfig message.
                 * @param message Plain 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 GatewayAPIConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns GatewayAPIConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.GatewayAPIConfig;

                /**
                 * Creates a plain object from a GatewayAPIConfig message. Also converts values to other types if specified.
                 * @param message GatewayAPIConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.GatewayAPIConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this GatewayAPIConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for GatewayAPIConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace GatewayAPIConfig {

                /** Channel enum. */
                enum Channel {
                    CHANNEL_UNSPECIFIED = 0,
                    CHANNEL_DISABLED = 1,
                    CHANNEL_EXPERIMENTAL = 3,
                    CHANNEL_STANDARD = 4
                }
            }

            /** Properties of a ServiceExternalIPsConfig. */
            interface IServiceExternalIPsConfig {

                /** ServiceExternalIPsConfig enabled */
                enabled?: (boolean|null);
            }

            /** Represents a ServiceExternalIPsConfig. */
            class ServiceExternalIPsConfig implements IServiceExternalIPsConfig {

                /**
                 * Constructs a new ServiceExternalIPsConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IServiceExternalIPsConfig);

                /** ServiceExternalIPsConfig enabled. */
                public enabled: boolean;

                /**
                 * Creates a new ServiceExternalIPsConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ServiceExternalIPsConfig instance
                 */
                public static create(properties?: google.container.v1beta1.IServiceExternalIPsConfig): google.container.v1beta1.ServiceExternalIPsConfig;

                /**
                 * Encodes the specified ServiceExternalIPsConfig message. Does not implicitly {@link google.container.v1beta1.ServiceExternalIPsConfig.verify|verify} messages.
                 * @param message ServiceExternalIPsConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IServiceExternalIPsConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified ServiceExternalIPsConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.ServiceExternalIPsConfig.verify|verify} messages.
                 * @param message ServiceExternalIPsConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IServiceExternalIPsConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a ServiceExternalIPsConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ServiceExternalIPsConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.ServiceExternalIPsConfig;

                /**
                 * Decodes a ServiceExternalIPsConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ServiceExternalIPsConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.ServiceExternalIPsConfig;

                /**
                 * Verifies a ServiceExternalIPsConfig message.
                 * @param message Plain 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 ServiceExternalIPsConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ServiceExternalIPsConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.ServiceExternalIPsConfig;

                /**
                 * Creates a plain object from a ServiceExternalIPsConfig message. Also converts values to other types if specified.
                 * @param message ServiceExternalIPsConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.ServiceExternalIPsConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ServiceExternalIPsConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for ServiceExternalIPsConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a ListUsableSubnetworksRequest. */
            interface IListUsableSubnetworksRequest {

                /** ListUsableSubnetworksRequest parent */
                parent?: (string|null);

                /** ListUsableSubnetworksRequest filter */
                filter?: (string|null);

                /** ListUsableSubnetworksRequest pageSize */
                pageSize?: (number|null);

                /** ListUsableSubnetworksRequest pageToken */
                pageToken?: (string|null);
            }

            /** Represents a ListUsableSubnetworksRequest. */
            class ListUsableSubnetworksRequest implements IListUsableSubnetworksRequest {

                /**
                 * Constructs a new ListUsableSubnetworksRequest.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IListUsableSubnetworksRequest);

                /** ListUsableSubnetworksRequest parent. */
                public parent: string;

                /** ListUsableSubnetworksRequest filter. */
                public filter: string;

                /** ListUsableSubnetworksRequest pageSize. */
                public pageSize: number;

                /** ListUsableSubnetworksRequest pageToken. */
                public pageToken: string;

                /**
                 * Creates a new ListUsableSubnetworksRequest instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ListUsableSubnetworksRequest instance
                 */
                public static create(properties?: google.container.v1beta1.IListUsableSubnetworksRequest): google.container.v1beta1.ListUsableSubnetworksRequest;

                /**
                 * Encodes the specified ListUsableSubnetworksRequest message. Does not implicitly {@link google.container.v1beta1.ListUsableSubnetworksRequest.verify|verify} messages.
                 * @param message ListUsableSubnetworksRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IListUsableSubnetworksRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified ListUsableSubnetworksRequest message, length delimited. Does not implicitly {@link google.container.v1beta1.ListUsableSubnetworksRequest.verify|verify} messages.
                 * @param message ListUsableSubnetworksRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IListUsableSubnetworksRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a ListUsableSubnetworksRequest message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ListUsableSubnetworksRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.ListUsableSubnetworksRequest;

                /**
                 * Decodes a ListUsableSubnetworksRequest message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ListUsableSubnetworksRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.ListUsableSubnetworksRequest;

                /**
                 * Verifies a ListUsableSubnetworksRequest message.
                 * @param message Plain 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 ListUsableSubnetworksRequest message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ListUsableSubnetworksRequest
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.ListUsableSubnetworksRequest;

                /**
                 * Creates a plain object from a ListUsableSubnetworksRequest message. Also converts values to other types if specified.
                 * @param message ListUsableSubnetworksRequest
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.ListUsableSubnetworksRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ListUsableSubnetworksRequest to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for ListUsableSubnetworksRequest
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a ListUsableSubnetworksResponse. */
            interface IListUsableSubnetworksResponse {

                /** ListUsableSubnetworksResponse subnetworks */
                subnetworks?: (google.container.v1beta1.IUsableSubnetwork[]|null);

                /** ListUsableSubnetworksResponse nextPageToken */
                nextPageToken?: (string|null);
            }

            /** Represents a ListUsableSubnetworksResponse. */
            class ListUsableSubnetworksResponse implements IListUsableSubnetworksResponse {

                /**
                 * Constructs a new ListUsableSubnetworksResponse.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IListUsableSubnetworksResponse);

                /** ListUsableSubnetworksResponse subnetworks. */
                public subnetworks: google.container.v1beta1.IUsableSubnetwork[];

                /** ListUsableSubnetworksResponse nextPageToken. */
                public nextPageToken: string;

                /**
                 * Creates a new ListUsableSubnetworksResponse instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ListUsableSubnetworksResponse instance
                 */
                public static create(properties?: google.container.v1beta1.IListUsableSubnetworksResponse): google.container.v1beta1.ListUsableSubnetworksResponse;

                /**
                 * Encodes the specified ListUsableSubnetworksResponse message. Does not implicitly {@link google.container.v1beta1.ListUsableSubnetworksResponse.verify|verify} messages.
                 * @param message ListUsableSubnetworksResponse message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IListUsableSubnetworksResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified ListUsableSubnetworksResponse message, length delimited. Does not implicitly {@link google.container.v1beta1.ListUsableSubnetworksResponse.verify|verify} messages.
                 * @param message ListUsableSubnetworksResponse message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IListUsableSubnetworksResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a ListUsableSubnetworksResponse message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ListUsableSubnetworksResponse
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.ListUsableSubnetworksResponse;

                /**
                 * Decodes a ListUsableSubnetworksResponse message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ListUsableSubnetworksResponse
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.ListUsableSubnetworksResponse;

                /**
                 * Verifies a ListUsableSubnetworksResponse message.
                 * @param message Plain 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 ListUsableSubnetworksResponse message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ListUsableSubnetworksResponse
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.ListUsableSubnetworksResponse;

                /**
                 * Creates a plain object from a ListUsableSubnetworksResponse message. Also converts values to other types if specified.
                 * @param message ListUsableSubnetworksResponse
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.ListUsableSubnetworksResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ListUsableSubnetworksResponse to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for ListUsableSubnetworksResponse
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a UsableSubnetworkSecondaryRange. */
            interface IUsableSubnetworkSecondaryRange {

                /** UsableSubnetworkSecondaryRange rangeName */
                rangeName?: (string|null);

                /** UsableSubnetworkSecondaryRange ipCidrRange */
                ipCidrRange?: (string|null);

                /** UsableSubnetworkSecondaryRange status */
                status?: (google.container.v1beta1.UsableSubnetworkSecondaryRange.Status|keyof typeof google.container.v1beta1.UsableSubnetworkSecondaryRange.Status|null);
            }

            /** Represents a UsableSubnetworkSecondaryRange. */
            class UsableSubnetworkSecondaryRange implements IUsableSubnetworkSecondaryRange {

                /**
                 * Constructs a new UsableSubnetworkSecondaryRange.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IUsableSubnetworkSecondaryRange);

                /** UsableSubnetworkSecondaryRange rangeName. */
                public rangeName: string;

                /** UsableSubnetworkSecondaryRange ipCidrRange. */
                public ipCidrRange: string;

                /** UsableSubnetworkSecondaryRange status. */
                public status: (google.container.v1beta1.UsableSubnetworkSecondaryRange.Status|keyof typeof google.container.v1beta1.UsableSubnetworkSecondaryRange.Status);

                /**
                 * Creates a new UsableSubnetworkSecondaryRange instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns UsableSubnetworkSecondaryRange instance
                 */
                public static create(properties?: google.container.v1beta1.IUsableSubnetworkSecondaryRange): google.container.v1beta1.UsableSubnetworkSecondaryRange;

                /**
                 * Encodes the specified UsableSubnetworkSecondaryRange message. Does not implicitly {@link google.container.v1beta1.UsableSubnetworkSecondaryRange.verify|verify} messages.
                 * @param message UsableSubnetworkSecondaryRange message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IUsableSubnetworkSecondaryRange, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified UsableSubnetworkSecondaryRange message, length delimited. Does not implicitly {@link google.container.v1beta1.UsableSubnetworkSecondaryRange.verify|verify} messages.
                 * @param message UsableSubnetworkSecondaryRange message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IUsableSubnetworkSecondaryRange, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a UsableSubnetworkSecondaryRange message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns UsableSubnetworkSecondaryRange
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.UsableSubnetworkSecondaryRange;

                /**
                 * Decodes a UsableSubnetworkSecondaryRange message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns UsableSubnetworkSecondaryRange
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.UsableSubnetworkSecondaryRange;

                /**
                 * Verifies a UsableSubnetworkSecondaryRange message.
                 * @param message Plain 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 UsableSubnetworkSecondaryRange message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns UsableSubnetworkSecondaryRange
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.UsableSubnetworkSecondaryRange;

                /**
                 * Creates a plain object from a UsableSubnetworkSecondaryRange message. Also converts values to other types if specified.
                 * @param message UsableSubnetworkSecondaryRange
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.UsableSubnetworkSecondaryRange, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this UsableSubnetworkSecondaryRange to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for UsableSubnetworkSecondaryRange
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace UsableSubnetworkSecondaryRange {

                /** Status enum. */
                enum Status {
                    UNKNOWN = 0,
                    UNUSED = 1,
                    IN_USE_SERVICE = 2,
                    IN_USE_SHAREABLE_POD = 3,
                    IN_USE_MANAGED_POD = 4
                }
            }

            /** Properties of a UsableSubnetwork. */
            interface IUsableSubnetwork {

                /** UsableSubnetwork subnetwork */
                subnetwork?: (string|null);

                /** UsableSubnetwork network */
                network?: (string|null);

                /** UsableSubnetwork ipCidrRange */
                ipCidrRange?: (string|null);

                /** UsableSubnetwork secondaryIpRanges */
                secondaryIpRanges?: (google.container.v1beta1.IUsableSubnetworkSecondaryRange[]|null);

                /** UsableSubnetwork statusMessage */
                statusMessage?: (string|null);
            }

            /** Represents a UsableSubnetwork. */
            class UsableSubnetwork implements IUsableSubnetwork {

                /**
                 * Constructs a new UsableSubnetwork.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IUsableSubnetwork);

                /** UsableSubnetwork subnetwork. */
                public subnetwork: string;

                /** UsableSubnetwork network. */
                public network: string;

                /** UsableSubnetwork ipCidrRange. */
                public ipCidrRange: string;

                /** UsableSubnetwork secondaryIpRanges. */
                public secondaryIpRanges: google.container.v1beta1.IUsableSubnetworkSecondaryRange[];

                /** UsableSubnetwork statusMessage. */
                public statusMessage: string;

                /**
                 * Creates a new UsableSubnetwork instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns UsableSubnetwork instance
                 */
                public static create(properties?: google.container.v1beta1.IUsableSubnetwork): google.container.v1beta1.UsableSubnetwork;

                /**
                 * Encodes the specified UsableSubnetwork message. Does not implicitly {@link google.container.v1beta1.UsableSubnetwork.verify|verify} messages.
                 * @param message UsableSubnetwork message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IUsableSubnetwork, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified UsableSubnetwork message, length delimited. Does not implicitly {@link google.container.v1beta1.UsableSubnetwork.verify|verify} messages.
                 * @param message UsableSubnetwork message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IUsableSubnetwork, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a UsableSubnetwork message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns UsableSubnetwork
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.UsableSubnetwork;

                /**
                 * Decodes a UsableSubnetwork message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns UsableSubnetwork
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.UsableSubnetwork;

                /**
                 * Verifies a UsableSubnetwork message.
                 * @param message Plain 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 UsableSubnetwork message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns UsableSubnetwork
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.UsableSubnetwork;

                /**
                 * Creates a plain object from a UsableSubnetwork message. Also converts values to other types if specified.
                 * @param message UsableSubnetwork
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.UsableSubnetwork, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this UsableSubnetwork to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for UsableSubnetwork
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a VerticalPodAutoscaling. */
            interface IVerticalPodAutoscaling {

                /** VerticalPodAutoscaling enabled */
                enabled?: (boolean|null);
            }

            /** Represents a VerticalPodAutoscaling. */
            class VerticalPodAutoscaling implements IVerticalPodAutoscaling {

                /**
                 * Constructs a new VerticalPodAutoscaling.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IVerticalPodAutoscaling);

                /** VerticalPodAutoscaling enabled. */
                public enabled: boolean;

                /**
                 * Creates a new VerticalPodAutoscaling instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns VerticalPodAutoscaling instance
                 */
                public static create(properties?: google.container.v1beta1.IVerticalPodAutoscaling): google.container.v1beta1.VerticalPodAutoscaling;

                /**
                 * Encodes the specified VerticalPodAutoscaling message. Does not implicitly {@link google.container.v1beta1.VerticalPodAutoscaling.verify|verify} messages.
                 * @param message VerticalPodAutoscaling message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IVerticalPodAutoscaling, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified VerticalPodAutoscaling message, length delimited. Does not implicitly {@link google.container.v1beta1.VerticalPodAutoscaling.verify|verify} messages.
                 * @param message VerticalPodAutoscaling message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IVerticalPodAutoscaling, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a VerticalPodAutoscaling message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns VerticalPodAutoscaling
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.VerticalPodAutoscaling;

                /**
                 * Decodes a VerticalPodAutoscaling message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns VerticalPodAutoscaling
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.VerticalPodAutoscaling;

                /**
                 * Verifies a VerticalPodAutoscaling message.
                 * @param message Plain 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 VerticalPodAutoscaling message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns VerticalPodAutoscaling
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.VerticalPodAutoscaling;

                /**
                 * Creates a plain object from a VerticalPodAutoscaling message. Also converts values to other types if specified.
                 * @param message VerticalPodAutoscaling
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.VerticalPodAutoscaling, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this VerticalPodAutoscaling to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for VerticalPodAutoscaling
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a DefaultSnatStatus. */
            interface IDefaultSnatStatus {

                /** DefaultSnatStatus disabled */
                disabled?: (boolean|null);
            }

            /** Represents a DefaultSnatStatus. */
            class DefaultSnatStatus implements IDefaultSnatStatus {

                /**
                 * Constructs a new DefaultSnatStatus.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IDefaultSnatStatus);

                /** DefaultSnatStatus disabled. */
                public disabled: boolean;

                /**
                 * Creates a new DefaultSnatStatus instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns DefaultSnatStatus instance
                 */
                public static create(properties?: google.container.v1beta1.IDefaultSnatStatus): google.container.v1beta1.DefaultSnatStatus;

                /**
                 * Encodes the specified DefaultSnatStatus message. Does not implicitly {@link google.container.v1beta1.DefaultSnatStatus.verify|verify} messages.
                 * @param message DefaultSnatStatus message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IDefaultSnatStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified DefaultSnatStatus message, length delimited. Does not implicitly {@link google.container.v1beta1.DefaultSnatStatus.verify|verify} messages.
                 * @param message DefaultSnatStatus message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IDefaultSnatStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a DefaultSnatStatus message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns DefaultSnatStatus
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.DefaultSnatStatus;

                /**
                 * Decodes a DefaultSnatStatus message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns DefaultSnatStatus
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.DefaultSnatStatus;

                /**
                 * Verifies a DefaultSnatStatus message.
                 * @param message Plain 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 DefaultSnatStatus message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns DefaultSnatStatus
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.DefaultSnatStatus;

                /**
                 * Creates a plain object from a DefaultSnatStatus message. Also converts values to other types if specified.
                 * @param message DefaultSnatStatus
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.DefaultSnatStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this DefaultSnatStatus to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for DefaultSnatStatus
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of an IntraNodeVisibilityConfig. */
            interface IIntraNodeVisibilityConfig {

                /** IntraNodeVisibilityConfig enabled */
                enabled?: (boolean|null);
            }

            /** Represents an IntraNodeVisibilityConfig. */
            class IntraNodeVisibilityConfig implements IIntraNodeVisibilityConfig {

                /**
                 * Constructs a new IntraNodeVisibilityConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IIntraNodeVisibilityConfig);

                /** IntraNodeVisibilityConfig enabled. */
                public enabled: boolean;

                /**
                 * Creates a new IntraNodeVisibilityConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns IntraNodeVisibilityConfig instance
                 */
                public static create(properties?: google.container.v1beta1.IIntraNodeVisibilityConfig): google.container.v1beta1.IntraNodeVisibilityConfig;

                /**
                 * Encodes the specified IntraNodeVisibilityConfig message. Does not implicitly {@link google.container.v1beta1.IntraNodeVisibilityConfig.verify|verify} messages.
                 * @param message IntraNodeVisibilityConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IIntraNodeVisibilityConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified IntraNodeVisibilityConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.IntraNodeVisibilityConfig.verify|verify} messages.
                 * @param message IntraNodeVisibilityConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IIntraNodeVisibilityConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes an IntraNodeVisibilityConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns IntraNodeVisibilityConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.IntraNodeVisibilityConfig;

                /**
                 * Decodes an IntraNodeVisibilityConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns IntraNodeVisibilityConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.IntraNodeVisibilityConfig;

                /**
                 * Verifies an IntraNodeVisibilityConfig message.
                 * @param message Plain 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 IntraNodeVisibilityConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns IntraNodeVisibilityConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.IntraNodeVisibilityConfig;

                /**
                 * Creates a plain object from an IntraNodeVisibilityConfig message. Also converts values to other types if specified.
                 * @param message IntraNodeVisibilityConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.IntraNodeVisibilityConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this IntraNodeVisibilityConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for IntraNodeVisibilityConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a ILBSubsettingConfig. */
            interface IILBSubsettingConfig {

                /** ILBSubsettingConfig enabled */
                enabled?: (boolean|null);
            }

            /** Represents a ILBSubsettingConfig. */
            class ILBSubsettingConfig implements IILBSubsettingConfig {

                /**
                 * Constructs a new ILBSubsettingConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IILBSubsettingConfig);

                /** ILBSubsettingConfig enabled. */
                public enabled: boolean;

                /**
                 * Creates a new ILBSubsettingConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ILBSubsettingConfig instance
                 */
                public static create(properties?: google.container.v1beta1.IILBSubsettingConfig): google.container.v1beta1.ILBSubsettingConfig;

                /**
                 * Encodes the specified ILBSubsettingConfig message. Does not implicitly {@link google.container.v1beta1.ILBSubsettingConfig.verify|verify} messages.
                 * @param message ILBSubsettingConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IILBSubsettingConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified ILBSubsettingConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.ILBSubsettingConfig.verify|verify} messages.
                 * @param message ILBSubsettingConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IILBSubsettingConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a ILBSubsettingConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ILBSubsettingConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.ILBSubsettingConfig;

                /**
                 * Decodes a ILBSubsettingConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ILBSubsettingConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.ILBSubsettingConfig;

                /**
                 * Verifies a ILBSubsettingConfig message.
                 * @param message Plain 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 ILBSubsettingConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ILBSubsettingConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.ILBSubsettingConfig;

                /**
                 * Creates a plain object from a ILBSubsettingConfig message. Also converts values to other types if specified.
                 * @param message ILBSubsettingConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.ILBSubsettingConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ILBSubsettingConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for ILBSubsettingConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a DNSConfig. */
            interface IDNSConfig {

                /** DNSConfig clusterDns */
                clusterDns?: (google.container.v1beta1.DNSConfig.Provider|keyof typeof google.container.v1beta1.DNSConfig.Provider|null);

                /** DNSConfig clusterDnsScope */
                clusterDnsScope?: (google.container.v1beta1.DNSConfig.DNSScope|keyof typeof google.container.v1beta1.DNSConfig.DNSScope|null);

                /** DNSConfig clusterDnsDomain */
                clusterDnsDomain?: (string|null);

                /** DNSConfig additiveVpcScopeDnsDomain */
                additiveVpcScopeDnsDomain?: (string|null);
            }

            /** Represents a DNSConfig. */
            class DNSConfig implements IDNSConfig {

                /**
                 * Constructs a new DNSConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IDNSConfig);

                /** DNSConfig clusterDns. */
                public clusterDns: (google.container.v1beta1.DNSConfig.Provider|keyof typeof google.container.v1beta1.DNSConfig.Provider);

                /** DNSConfig clusterDnsScope. */
                public clusterDnsScope: (google.container.v1beta1.DNSConfig.DNSScope|keyof typeof google.container.v1beta1.DNSConfig.DNSScope);

                /** DNSConfig clusterDnsDomain. */
                public clusterDnsDomain: string;

                /** DNSConfig additiveVpcScopeDnsDomain. */
                public additiveVpcScopeDnsDomain: string;

                /**
                 * Creates a new DNSConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns DNSConfig instance
                 */
                public static create(properties?: google.container.v1beta1.IDNSConfig): google.container.v1beta1.DNSConfig;

                /**
                 * Encodes the specified DNSConfig message. Does not implicitly {@link google.container.v1beta1.DNSConfig.verify|verify} messages.
                 * @param message DNSConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IDNSConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified DNSConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.DNSConfig.verify|verify} messages.
                 * @param message DNSConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IDNSConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a DNSConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns DNSConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.DNSConfig;

                /**
                 * Decodes a DNSConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns DNSConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.DNSConfig;

                /**
                 * Verifies a DNSConfig message.
                 * @param message Plain 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 DNSConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns DNSConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.DNSConfig;

                /**
                 * Creates a plain object from a DNSConfig message. Also converts values to other types if specified.
                 * @param message DNSConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.DNSConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this DNSConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for DNSConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace DNSConfig {

                /** Provider enum. */
                enum Provider {
                    PROVIDER_UNSPECIFIED = 0,
                    PLATFORM_DEFAULT = 1,
                    CLOUD_DNS = 2,
                    KUBE_DNS = 3
                }

                /** DNSScope enum. */
                enum DNSScope {
                    DNS_SCOPE_UNSPECIFIED = 0,
                    CLUSTER_SCOPE = 1,
                    VPC_SCOPE = 2
                }
            }

            /** Properties of a MaxPodsConstraint. */
            interface IMaxPodsConstraint {

                /** MaxPodsConstraint maxPodsPerNode */
                maxPodsPerNode?: (number|Long|string|null);
            }

            /** Represents a MaxPodsConstraint. */
            class MaxPodsConstraint implements IMaxPodsConstraint {

                /**
                 * Constructs a new MaxPodsConstraint.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IMaxPodsConstraint);

                /** MaxPodsConstraint maxPodsPerNode. */
                public maxPodsPerNode: (number|Long|string);

                /**
                 * Creates a new MaxPodsConstraint instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns MaxPodsConstraint instance
                 */
                public static create(properties?: google.container.v1beta1.IMaxPodsConstraint): google.container.v1beta1.MaxPodsConstraint;

                /**
                 * Encodes the specified MaxPodsConstraint message. Does not implicitly {@link google.container.v1beta1.MaxPodsConstraint.verify|verify} messages.
                 * @param message MaxPodsConstraint message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IMaxPodsConstraint, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified MaxPodsConstraint message, length delimited. Does not implicitly {@link google.container.v1beta1.MaxPodsConstraint.verify|verify} messages.
                 * @param message MaxPodsConstraint message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IMaxPodsConstraint, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a MaxPodsConstraint message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns MaxPodsConstraint
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.MaxPodsConstraint;

                /**
                 * Decodes a MaxPodsConstraint message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns MaxPodsConstraint
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.MaxPodsConstraint;

                /**
                 * Verifies a MaxPodsConstraint message.
                 * @param message Plain 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 MaxPodsConstraint message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns MaxPodsConstraint
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.MaxPodsConstraint;

                /**
                 * Creates a plain object from a MaxPodsConstraint message. Also converts values to other types if specified.
                 * @param message MaxPodsConstraint
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.MaxPodsConstraint, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this MaxPodsConstraint to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for MaxPodsConstraint
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a WorkloadIdentityConfig. */
            interface IWorkloadIdentityConfig {

                /** WorkloadIdentityConfig identityNamespace */
                identityNamespace?: (string|null);

                /** WorkloadIdentityConfig workloadPool */
                workloadPool?: (string|null);

                /** WorkloadIdentityConfig identityProvider */
                identityProvider?: (string|null);
            }

            /** Represents a WorkloadIdentityConfig. */
            class WorkloadIdentityConfig implements IWorkloadIdentityConfig {

                /**
                 * Constructs a new WorkloadIdentityConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IWorkloadIdentityConfig);

                /** WorkloadIdentityConfig identityNamespace. */
                public identityNamespace: string;

                /** WorkloadIdentityConfig workloadPool. */
                public workloadPool: string;

                /** WorkloadIdentityConfig identityProvider. */
                public identityProvider: string;

                /**
                 * Creates a new WorkloadIdentityConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns WorkloadIdentityConfig instance
                 */
                public static create(properties?: google.container.v1beta1.IWorkloadIdentityConfig): google.container.v1beta1.WorkloadIdentityConfig;

                /**
                 * Encodes the specified WorkloadIdentityConfig message. Does not implicitly {@link google.container.v1beta1.WorkloadIdentityConfig.verify|verify} messages.
                 * @param message WorkloadIdentityConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IWorkloadIdentityConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified WorkloadIdentityConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.WorkloadIdentityConfig.verify|verify} messages.
                 * @param message WorkloadIdentityConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IWorkloadIdentityConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a WorkloadIdentityConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns WorkloadIdentityConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.WorkloadIdentityConfig;

                /**
                 * Decodes a WorkloadIdentityConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns WorkloadIdentityConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.WorkloadIdentityConfig;

                /**
                 * Verifies a WorkloadIdentityConfig message.
                 * @param message Plain 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 WorkloadIdentityConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns WorkloadIdentityConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.WorkloadIdentityConfig;

                /**
                 * Creates a plain object from a WorkloadIdentityConfig message. Also converts values to other types if specified.
                 * @param message WorkloadIdentityConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.WorkloadIdentityConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this WorkloadIdentityConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for WorkloadIdentityConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a WorkloadALTSConfig. */
            interface IWorkloadALTSConfig {

                /** WorkloadALTSConfig enableAlts */
                enableAlts?: (google.protobuf.IBoolValue|null);
            }

            /** Represents a WorkloadALTSConfig. */
            class WorkloadALTSConfig implements IWorkloadALTSConfig {

                /**
                 * Constructs a new WorkloadALTSConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IWorkloadALTSConfig);

                /** WorkloadALTSConfig enableAlts. */
                public enableAlts?: (google.protobuf.IBoolValue|null);

                /**
                 * Creates a new WorkloadALTSConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns WorkloadALTSConfig instance
                 */
                public static create(properties?: google.container.v1beta1.IWorkloadALTSConfig): google.container.v1beta1.WorkloadALTSConfig;

                /**
                 * Encodes the specified WorkloadALTSConfig message. Does not implicitly {@link google.container.v1beta1.WorkloadALTSConfig.verify|verify} messages.
                 * @param message WorkloadALTSConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IWorkloadALTSConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified WorkloadALTSConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.WorkloadALTSConfig.verify|verify} messages.
                 * @param message WorkloadALTSConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IWorkloadALTSConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a WorkloadALTSConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns WorkloadALTSConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.WorkloadALTSConfig;

                /**
                 * Decodes a WorkloadALTSConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns WorkloadALTSConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.WorkloadALTSConfig;

                /**
                 * Verifies a WorkloadALTSConfig message.
                 * @param message Plain 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 WorkloadALTSConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns WorkloadALTSConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.WorkloadALTSConfig;

                /**
                 * Creates a plain object from a WorkloadALTSConfig message. Also converts values to other types if specified.
                 * @param message WorkloadALTSConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.WorkloadALTSConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this WorkloadALTSConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for WorkloadALTSConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a WorkloadCertificates. */
            interface IWorkloadCertificates {

                /** WorkloadCertificates enableCertificates */
                enableCertificates?: (google.protobuf.IBoolValue|null);
            }

            /** Represents a WorkloadCertificates. */
            class WorkloadCertificates implements IWorkloadCertificates {

                /**
                 * Constructs a new WorkloadCertificates.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IWorkloadCertificates);

                /** WorkloadCertificates enableCertificates. */
                public enableCertificates?: (google.protobuf.IBoolValue|null);

                /**
                 * Creates a new WorkloadCertificates instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns WorkloadCertificates instance
                 */
                public static create(properties?: google.container.v1beta1.IWorkloadCertificates): google.container.v1beta1.WorkloadCertificates;

                /**
                 * Encodes the specified WorkloadCertificates message. Does not implicitly {@link google.container.v1beta1.WorkloadCertificates.verify|verify} messages.
                 * @param message WorkloadCertificates message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IWorkloadCertificates, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified WorkloadCertificates message, length delimited. Does not implicitly {@link google.container.v1beta1.WorkloadCertificates.verify|verify} messages.
                 * @param message WorkloadCertificates message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IWorkloadCertificates, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a WorkloadCertificates message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns WorkloadCertificates
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.WorkloadCertificates;

                /**
                 * Decodes a WorkloadCertificates message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns WorkloadCertificates
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.WorkloadCertificates;

                /**
                 * Verifies a WorkloadCertificates message.
                 * @param message Plain 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 WorkloadCertificates message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns WorkloadCertificates
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.WorkloadCertificates;

                /**
                 * Creates a plain object from a WorkloadCertificates message. Also converts values to other types if specified.
                 * @param message WorkloadCertificates
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.WorkloadCertificates, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this WorkloadCertificates to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for WorkloadCertificates
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a MeshCertificates. */
            interface IMeshCertificates {

                /** MeshCertificates enableCertificates */
                enableCertificates?: (google.protobuf.IBoolValue|null);
            }

            /** Represents a MeshCertificates. */
            class MeshCertificates implements IMeshCertificates {

                /**
                 * Constructs a new MeshCertificates.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IMeshCertificates);

                /** MeshCertificates enableCertificates. */
                public enableCertificates?: (google.protobuf.IBoolValue|null);

                /**
                 * Creates a new MeshCertificates instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns MeshCertificates instance
                 */
                public static create(properties?: google.container.v1beta1.IMeshCertificates): google.container.v1beta1.MeshCertificates;

                /**
                 * Encodes the specified MeshCertificates message. Does not implicitly {@link google.container.v1beta1.MeshCertificates.verify|verify} messages.
                 * @param message MeshCertificates message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IMeshCertificates, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified MeshCertificates message, length delimited. Does not implicitly {@link google.container.v1beta1.MeshCertificates.verify|verify} messages.
                 * @param message MeshCertificates message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IMeshCertificates, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a MeshCertificates message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns MeshCertificates
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.MeshCertificates;

                /**
                 * Decodes a MeshCertificates message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns MeshCertificates
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.MeshCertificates;

                /**
                 * Verifies a MeshCertificates message.
                 * @param message Plain 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 MeshCertificates message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns MeshCertificates
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.MeshCertificates;

                /**
                 * Creates a plain object from a MeshCertificates message. Also converts values to other types if specified.
                 * @param message MeshCertificates
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.MeshCertificates, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this MeshCertificates to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for MeshCertificates
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a DatabaseEncryption. */
            interface IDatabaseEncryption {

                /** DatabaseEncryption keyName */
                keyName?: (string|null);

                /** DatabaseEncryption state */
                state?: (google.container.v1beta1.DatabaseEncryption.State|keyof typeof google.container.v1beta1.DatabaseEncryption.State|null);

                /** DatabaseEncryption currentState */
                currentState?: (google.container.v1beta1.DatabaseEncryption.CurrentState|keyof typeof google.container.v1beta1.DatabaseEncryption.CurrentState|null);

                /** DatabaseEncryption decryptionKeys */
                decryptionKeys?: (string[]|null);

                /** DatabaseEncryption lastOperationErrors */
                lastOperationErrors?: (google.container.v1beta1.DatabaseEncryption.IOperationError[]|null);
            }

            /** Represents a DatabaseEncryption. */
            class DatabaseEncryption implements IDatabaseEncryption {

                /**
                 * Constructs a new DatabaseEncryption.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IDatabaseEncryption);

                /** DatabaseEncryption keyName. */
                public keyName: string;

                /** DatabaseEncryption state. */
                public state: (google.container.v1beta1.DatabaseEncryption.State|keyof typeof google.container.v1beta1.DatabaseEncryption.State);

                /** DatabaseEncryption currentState. */
                public currentState?: (google.container.v1beta1.DatabaseEncryption.CurrentState|keyof typeof google.container.v1beta1.DatabaseEncryption.CurrentState|null);

                /** DatabaseEncryption decryptionKeys. */
                public decryptionKeys: string[];

                /** DatabaseEncryption lastOperationErrors. */
                public lastOperationErrors: google.container.v1beta1.DatabaseEncryption.IOperationError[];

                /**
                 * Creates a new DatabaseEncryption instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns DatabaseEncryption instance
                 */
                public static create(properties?: google.container.v1beta1.IDatabaseEncryption): google.container.v1beta1.DatabaseEncryption;

                /**
                 * Encodes the specified DatabaseEncryption message. Does not implicitly {@link google.container.v1beta1.DatabaseEncryption.verify|verify} messages.
                 * @param message DatabaseEncryption message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IDatabaseEncryption, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified DatabaseEncryption message, length delimited. Does not implicitly {@link google.container.v1beta1.DatabaseEncryption.verify|verify} messages.
                 * @param message DatabaseEncryption message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IDatabaseEncryption, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a DatabaseEncryption message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns DatabaseEncryption
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.DatabaseEncryption;

                /**
                 * Decodes a DatabaseEncryption message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns DatabaseEncryption
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.DatabaseEncryption;

                /**
                 * Verifies a DatabaseEncryption message.
                 * @param message Plain 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 DatabaseEncryption message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns DatabaseEncryption
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.DatabaseEncryption;

                /**
                 * Creates a plain object from a DatabaseEncryption message. Also converts values to other types if specified.
                 * @param message DatabaseEncryption
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.DatabaseEncryption, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this DatabaseEncryption to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for DatabaseEncryption
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace DatabaseEncryption {

                /** State enum. */
                enum State {
                    UNKNOWN = 0,
                    ENCRYPTED = 1,
                    DECRYPTED = 2,
                    ALL_OBJECTS_ENCRYPTION_ENABLED = 3
                }

                /** CurrentState enum. */
                enum CurrentState {
                    CURRENT_STATE_UNSPECIFIED = 0,
                    CURRENT_STATE_ENCRYPTED = 7,
                    CURRENT_STATE_DECRYPTED = 2,
                    CURRENT_STATE_ENCRYPTION_PENDING = 3,
                    CURRENT_STATE_ENCRYPTION_ERROR = 4,
                    CURRENT_STATE_DECRYPTION_PENDING = 5,
                    CURRENT_STATE_DECRYPTION_ERROR = 6,
                    CURRENT_STATE_ALL_OBJECTS_ENCRYPTION_ENABLED = 8,
                    CURRENT_STATE_ALL_OBJECTS_ENCRYPTION_PENDING = 9,
                    CURRENT_STATE_ALL_OBJECTS_ENCRYPTION_ERROR = 10
                }

                /** Properties of an OperationError. */
                interface IOperationError {

                    /** OperationError keyName */
                    keyName?: (string|null);

                    /** OperationError errorMessage */
                    errorMessage?: (string|null);

                    /** OperationError timestamp */
                    timestamp?: (google.protobuf.ITimestamp|null);
                }

                /** Represents an OperationError. */
                class OperationError implements IOperationError {

                    /**
                     * Constructs a new OperationError.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.container.v1beta1.DatabaseEncryption.IOperationError);

                    /** OperationError keyName. */
                    public keyName: string;

                    /** OperationError errorMessage. */
                    public errorMessage: string;

                    /** OperationError timestamp. */
                    public timestamp?: (google.protobuf.ITimestamp|null);

                    /**
                     * Creates a new OperationError instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns OperationError instance
                     */
                    public static create(properties?: google.container.v1beta1.DatabaseEncryption.IOperationError): google.container.v1beta1.DatabaseEncryption.OperationError;

                    /**
                     * Encodes the specified OperationError message. Does not implicitly {@link google.container.v1beta1.DatabaseEncryption.OperationError.verify|verify} messages.
                     * @param message OperationError message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.container.v1beta1.DatabaseEncryption.IOperationError, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified OperationError message, length delimited. Does not implicitly {@link google.container.v1beta1.DatabaseEncryption.OperationError.verify|verify} messages.
                     * @param message OperationError message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.container.v1beta1.DatabaseEncryption.IOperationError, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an OperationError message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns OperationError
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.DatabaseEncryption.OperationError;

                    /**
                     * Decodes an OperationError message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns OperationError
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.DatabaseEncryption.OperationError;

                    /**
                     * Verifies an OperationError message.
                     * @param message Plain 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 OperationError message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns OperationError
                     */
                    public static fromObject(object: { [k: string]: any }): google.container.v1beta1.DatabaseEncryption.OperationError;

                    /**
                     * Creates a plain object from an OperationError message. Also converts values to other types if specified.
                     * @param message OperationError
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.container.v1beta1.DatabaseEncryption.OperationError, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this OperationError to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for OperationError
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }
            }

            /** Properties of a ResourceUsageExportConfig. */
            interface IResourceUsageExportConfig {

                /** ResourceUsageExportConfig bigqueryDestination */
                bigqueryDestination?: (google.container.v1beta1.ResourceUsageExportConfig.IBigQueryDestination|null);

                /** ResourceUsageExportConfig enableNetworkEgressMetering */
                enableNetworkEgressMetering?: (boolean|null);

                /** ResourceUsageExportConfig consumptionMeteringConfig */
                consumptionMeteringConfig?: (google.container.v1beta1.ResourceUsageExportConfig.IConsumptionMeteringConfig|null);
            }

            /** Represents a ResourceUsageExportConfig. */
            class ResourceUsageExportConfig implements IResourceUsageExportConfig {

                /**
                 * Constructs a new ResourceUsageExportConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IResourceUsageExportConfig);

                /** ResourceUsageExportConfig bigqueryDestination. */
                public bigqueryDestination?: (google.container.v1beta1.ResourceUsageExportConfig.IBigQueryDestination|null);

                /** ResourceUsageExportConfig enableNetworkEgressMetering. */
                public enableNetworkEgressMetering: boolean;

                /** ResourceUsageExportConfig consumptionMeteringConfig. */
                public consumptionMeteringConfig?: (google.container.v1beta1.ResourceUsageExportConfig.IConsumptionMeteringConfig|null);

                /**
                 * Creates a new ResourceUsageExportConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ResourceUsageExportConfig instance
                 */
                public static create(properties?: google.container.v1beta1.IResourceUsageExportConfig): google.container.v1beta1.ResourceUsageExportConfig;

                /**
                 * Encodes the specified ResourceUsageExportConfig message. Does not implicitly {@link google.container.v1beta1.ResourceUsageExportConfig.verify|verify} messages.
                 * @param message ResourceUsageExportConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IResourceUsageExportConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified ResourceUsageExportConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.ResourceUsageExportConfig.verify|verify} messages.
                 * @param message ResourceUsageExportConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IResourceUsageExportConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a ResourceUsageExportConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ResourceUsageExportConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.ResourceUsageExportConfig;

                /**
                 * Decodes a ResourceUsageExportConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ResourceUsageExportConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.ResourceUsageExportConfig;

                /**
                 * Verifies a ResourceUsageExportConfig message.
                 * @param message Plain 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 ResourceUsageExportConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ResourceUsageExportConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.ResourceUsageExportConfig;

                /**
                 * Creates a plain object from a ResourceUsageExportConfig message. Also converts values to other types if specified.
                 * @param message ResourceUsageExportConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.ResourceUsageExportConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ResourceUsageExportConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for ResourceUsageExportConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace ResourceUsageExportConfig {

                /** Properties of a BigQueryDestination. */
                interface IBigQueryDestination {

                    /** BigQueryDestination datasetId */
                    datasetId?: (string|null);
                }

                /** Represents a BigQueryDestination. */
                class BigQueryDestination implements IBigQueryDestination {

                    /**
                     * Constructs a new BigQueryDestination.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.container.v1beta1.ResourceUsageExportConfig.IBigQueryDestination);

                    /** BigQueryDestination datasetId. */
                    public datasetId: string;

                    /**
                     * Creates a new BigQueryDestination instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BigQueryDestination instance
                     */
                    public static create(properties?: google.container.v1beta1.ResourceUsageExportConfig.IBigQueryDestination): google.container.v1beta1.ResourceUsageExportConfig.BigQueryDestination;

                    /**
                     * Encodes the specified BigQueryDestination message. Does not implicitly {@link google.container.v1beta1.ResourceUsageExportConfig.BigQueryDestination.verify|verify} messages.
                     * @param message BigQueryDestination message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.container.v1beta1.ResourceUsageExportConfig.IBigQueryDestination, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BigQueryDestination message, length delimited. Does not implicitly {@link google.container.v1beta1.ResourceUsageExportConfig.BigQueryDestination.verify|verify} messages.
                     * @param message BigQueryDestination message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.container.v1beta1.ResourceUsageExportConfig.IBigQueryDestination, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BigQueryDestination message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BigQueryDestination
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.ResourceUsageExportConfig.BigQueryDestination;

                    /**
                     * Decodes a BigQueryDestination message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BigQueryDestination
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.ResourceUsageExportConfig.BigQueryDestination;

                    /**
                     * Verifies a BigQueryDestination message.
                     * @param message Plain 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 BigQueryDestination message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BigQueryDestination
                     */
                    public static fromObject(object: { [k: string]: any }): google.container.v1beta1.ResourceUsageExportConfig.BigQueryDestination;

                    /**
                     * Creates a plain object from a BigQueryDestination message. Also converts values to other types if specified.
                     * @param message BigQueryDestination
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.container.v1beta1.ResourceUsageExportConfig.BigQueryDestination, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BigQueryDestination to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BigQueryDestination
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ConsumptionMeteringConfig. */
                interface IConsumptionMeteringConfig {

                    /** ConsumptionMeteringConfig enabled */
                    enabled?: (boolean|null);
                }

                /** Represents a ConsumptionMeteringConfig. */
                class ConsumptionMeteringConfig implements IConsumptionMeteringConfig {

                    /**
                     * Constructs a new ConsumptionMeteringConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.container.v1beta1.ResourceUsageExportConfig.IConsumptionMeteringConfig);

                    /** ConsumptionMeteringConfig enabled. */
                    public enabled: boolean;

                    /**
                     * Creates a new ConsumptionMeteringConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ConsumptionMeteringConfig instance
                     */
                    public static create(properties?: google.container.v1beta1.ResourceUsageExportConfig.IConsumptionMeteringConfig): google.container.v1beta1.ResourceUsageExportConfig.ConsumptionMeteringConfig;

                    /**
                     * Encodes the specified ConsumptionMeteringConfig message. Does not implicitly {@link google.container.v1beta1.ResourceUsageExportConfig.ConsumptionMeteringConfig.verify|verify} messages.
                     * @param message ConsumptionMeteringConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.container.v1beta1.ResourceUsageExportConfig.IConsumptionMeteringConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ConsumptionMeteringConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.ResourceUsageExportConfig.ConsumptionMeteringConfig.verify|verify} messages.
                     * @param message ConsumptionMeteringConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.container.v1beta1.ResourceUsageExportConfig.IConsumptionMeteringConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ConsumptionMeteringConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ConsumptionMeteringConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.ResourceUsageExportConfig.ConsumptionMeteringConfig;

                    /**
                     * Decodes a ConsumptionMeteringConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ConsumptionMeteringConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.ResourceUsageExportConfig.ConsumptionMeteringConfig;

                    /**
                     * Verifies a ConsumptionMeteringConfig message.
                     * @param message Plain 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 ConsumptionMeteringConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ConsumptionMeteringConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.container.v1beta1.ResourceUsageExportConfig.ConsumptionMeteringConfig;

                    /**
                     * Creates a plain object from a ConsumptionMeteringConfig message. Also converts values to other types if specified.
                     * @param message ConsumptionMeteringConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.container.v1beta1.ResourceUsageExportConfig.ConsumptionMeteringConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ConsumptionMeteringConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ConsumptionMeteringConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }
            }

            /** Properties of a ShieldedNodes. */
            interface IShieldedNodes {

                /** ShieldedNodes enabled */
                enabled?: (boolean|null);
            }

            /** Represents a ShieldedNodes. */
            class ShieldedNodes implements IShieldedNodes {

                /**
                 * Constructs a new ShieldedNodes.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IShieldedNodes);

                /** ShieldedNodes enabled. */
                public enabled: boolean;

                /**
                 * Creates a new ShieldedNodes instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ShieldedNodes instance
                 */
                public static create(properties?: google.container.v1beta1.IShieldedNodes): google.container.v1beta1.ShieldedNodes;

                /**
                 * Encodes the specified ShieldedNodes message. Does not implicitly {@link google.container.v1beta1.ShieldedNodes.verify|verify} messages.
                 * @param message ShieldedNodes message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IShieldedNodes, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified ShieldedNodes message, length delimited. Does not implicitly {@link google.container.v1beta1.ShieldedNodes.verify|verify} messages.
                 * @param message ShieldedNodes message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IShieldedNodes, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a ShieldedNodes message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ShieldedNodes
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.ShieldedNodes;

                /**
                 * Decodes a ShieldedNodes message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ShieldedNodes
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.ShieldedNodes;

                /**
                 * Verifies a ShieldedNodes message.
                 * @param message Plain 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 ShieldedNodes message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ShieldedNodes
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.ShieldedNodes;

                /**
                 * Creates a plain object from a ShieldedNodes message. Also converts values to other types if specified.
                 * @param message ShieldedNodes
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.ShieldedNodes, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ShieldedNodes to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for ShieldedNodes
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a VirtualNIC. */
            interface IVirtualNIC {

                /** VirtualNIC enabled */
                enabled?: (boolean|null);
            }

            /** Represents a VirtualNIC. */
            class VirtualNIC implements IVirtualNIC {

                /**
                 * Constructs a new VirtualNIC.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IVirtualNIC);

                /** VirtualNIC enabled. */
                public enabled: boolean;

                /**
                 * Creates a new VirtualNIC instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns VirtualNIC instance
                 */
                public static create(properties?: google.container.v1beta1.IVirtualNIC): google.container.v1beta1.VirtualNIC;

                /**
                 * Encodes the specified VirtualNIC message. Does not implicitly {@link google.container.v1beta1.VirtualNIC.verify|verify} messages.
                 * @param message VirtualNIC message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IVirtualNIC, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified VirtualNIC message, length delimited. Does not implicitly {@link google.container.v1beta1.VirtualNIC.verify|verify} messages.
                 * @param message VirtualNIC message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IVirtualNIC, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a VirtualNIC message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns VirtualNIC
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.VirtualNIC;

                /**
                 * Decodes a VirtualNIC message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns VirtualNIC
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.VirtualNIC;

                /**
                 * Verifies a VirtualNIC message.
                 * @param message Plain 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 VirtualNIC message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns VirtualNIC
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.VirtualNIC;

                /**
                 * Creates a plain object from a VirtualNIC message. Also converts values to other types if specified.
                 * @param message VirtualNIC
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.VirtualNIC, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this VirtualNIC to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for VirtualNIC
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a FastSocket. */
            interface IFastSocket {

                /** FastSocket enabled */
                enabled?: (boolean|null);
            }

            /** Represents a FastSocket. */
            class FastSocket implements IFastSocket {

                /**
                 * Constructs a new FastSocket.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IFastSocket);

                /** FastSocket enabled. */
                public enabled: boolean;

                /**
                 * Creates a new FastSocket instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns FastSocket instance
                 */
                public static create(properties?: google.container.v1beta1.IFastSocket): google.container.v1beta1.FastSocket;

                /**
                 * Encodes the specified FastSocket message. Does not implicitly {@link google.container.v1beta1.FastSocket.verify|verify} messages.
                 * @param message FastSocket message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IFastSocket, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified FastSocket message, length delimited. Does not implicitly {@link google.container.v1beta1.FastSocket.verify|verify} messages.
                 * @param message FastSocket message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IFastSocket, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a FastSocket message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns FastSocket
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.FastSocket;

                /**
                 * Decodes a FastSocket message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns FastSocket
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.FastSocket;

                /**
                 * Verifies a FastSocket message.
                 * @param message Plain 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 FastSocket message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns FastSocket
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.FastSocket;

                /**
                 * Creates a plain object from a FastSocket message. Also converts values to other types if specified.
                 * @param message FastSocket
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.FastSocket, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this FastSocket to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for FastSocket
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a GPUDirectConfig. */
            interface IGPUDirectConfig {

                /** GPUDirectConfig gpuDirectStrategy */
                gpuDirectStrategy?: (google.container.v1beta1.GPUDirectConfig.GPUDirectStrategy|keyof typeof google.container.v1beta1.GPUDirectConfig.GPUDirectStrategy|null);
            }

            /** Represents a GPUDirectConfig. */
            class GPUDirectConfig implements IGPUDirectConfig {

                /**
                 * Constructs a new GPUDirectConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IGPUDirectConfig);

                /** GPUDirectConfig gpuDirectStrategy. */
                public gpuDirectStrategy?: (google.container.v1beta1.GPUDirectConfig.GPUDirectStrategy|keyof typeof google.container.v1beta1.GPUDirectConfig.GPUDirectStrategy|null);

                /**
                 * Creates a new GPUDirectConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns GPUDirectConfig instance
                 */
                public static create(properties?: google.container.v1beta1.IGPUDirectConfig): google.container.v1beta1.GPUDirectConfig;

                /**
                 * Encodes the specified GPUDirectConfig message. Does not implicitly {@link google.container.v1beta1.GPUDirectConfig.verify|verify} messages.
                 * @param message GPUDirectConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IGPUDirectConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified GPUDirectConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.GPUDirectConfig.verify|verify} messages.
                 * @param message GPUDirectConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IGPUDirectConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a GPUDirectConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns GPUDirectConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.GPUDirectConfig;

                /**
                 * Decodes a GPUDirectConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns GPUDirectConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.GPUDirectConfig;

                /**
                 * Verifies a GPUDirectConfig message.
                 * @param message Plain 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 GPUDirectConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns GPUDirectConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.GPUDirectConfig;

                /**
                 * Creates a plain object from a GPUDirectConfig message. Also converts values to other types if specified.
                 * @param message GPUDirectConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.GPUDirectConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this GPUDirectConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for GPUDirectConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace GPUDirectConfig {

                /** GPUDirectStrategy enum. */
                enum GPUDirectStrategy {
                    GPU_DIRECT_STRATEGY_UNSPECIFIED = 0,
                    RDMA = 2
                }
            }

            /** Properties of a GetOpenIDConfigRequest. */
            interface IGetOpenIDConfigRequest {

                /** GetOpenIDConfigRequest parent */
                parent?: (string|null);
            }

            /** Represents a GetOpenIDConfigRequest. */
            class GetOpenIDConfigRequest implements IGetOpenIDConfigRequest {

                /**
                 * Constructs a new GetOpenIDConfigRequest.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IGetOpenIDConfigRequest);

                /** GetOpenIDConfigRequest parent. */
                public parent: string;

                /**
                 * Creates a new GetOpenIDConfigRequest instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns GetOpenIDConfigRequest instance
                 */
                public static create(properties?: google.container.v1beta1.IGetOpenIDConfigRequest): google.container.v1beta1.GetOpenIDConfigRequest;

                /**
                 * Encodes the specified GetOpenIDConfigRequest message. Does not implicitly {@link google.container.v1beta1.GetOpenIDConfigRequest.verify|verify} messages.
                 * @param message GetOpenIDConfigRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IGetOpenIDConfigRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified GetOpenIDConfigRequest message, length delimited. Does not implicitly {@link google.container.v1beta1.GetOpenIDConfigRequest.verify|verify} messages.
                 * @param message GetOpenIDConfigRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IGetOpenIDConfigRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a GetOpenIDConfigRequest message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns GetOpenIDConfigRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.GetOpenIDConfigRequest;

                /**
                 * Decodes a GetOpenIDConfigRequest message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns GetOpenIDConfigRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.GetOpenIDConfigRequest;

                /**
                 * Verifies a GetOpenIDConfigRequest message.
                 * @param message Plain 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 GetOpenIDConfigRequest message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns GetOpenIDConfigRequest
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.GetOpenIDConfigRequest;

                /**
                 * Creates a plain object from a GetOpenIDConfigRequest message. Also converts values to other types if specified.
                 * @param message GetOpenIDConfigRequest
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.GetOpenIDConfigRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this GetOpenIDConfigRequest to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for GetOpenIDConfigRequest
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a GetOpenIDConfigResponse. */
            interface IGetOpenIDConfigResponse {

                /** GetOpenIDConfigResponse issuer */
                issuer?: (string|null);

                /** GetOpenIDConfigResponse jwksUri */
                jwksUri?: (string|null);

                /** GetOpenIDConfigResponse responseTypesSupported */
                responseTypesSupported?: (string[]|null);

                /** GetOpenIDConfigResponse subjectTypesSupported */
                subjectTypesSupported?: (string[]|null);

                /** GetOpenIDConfigResponse idTokenSigningAlgValuesSupported */
                idTokenSigningAlgValuesSupported?: (string[]|null);

                /** GetOpenIDConfigResponse claimsSupported */
                claimsSupported?: (string[]|null);

                /** GetOpenIDConfigResponse grantTypes */
                grantTypes?: (string[]|null);
            }

            /** Represents a GetOpenIDConfigResponse. */
            class GetOpenIDConfigResponse implements IGetOpenIDConfigResponse {

                /**
                 * Constructs a new GetOpenIDConfigResponse.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IGetOpenIDConfigResponse);

                /** GetOpenIDConfigResponse issuer. */
                public issuer: string;

                /** GetOpenIDConfigResponse jwksUri. */
                public jwksUri: string;

                /** GetOpenIDConfigResponse responseTypesSupported. */
                public responseTypesSupported: string[];

                /** GetOpenIDConfigResponse subjectTypesSupported. */
                public subjectTypesSupported: string[];

                /** GetOpenIDConfigResponse idTokenSigningAlgValuesSupported. */
                public idTokenSigningAlgValuesSupported: string[];

                /** GetOpenIDConfigResponse claimsSupported. */
                public claimsSupported: string[];

                /** GetOpenIDConfigResponse grantTypes. */
                public grantTypes: string[];

                /**
                 * Creates a new GetOpenIDConfigResponse instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns GetOpenIDConfigResponse instance
                 */
                public static create(properties?: google.container.v1beta1.IGetOpenIDConfigResponse): google.container.v1beta1.GetOpenIDConfigResponse;

                /**
                 * Encodes the specified GetOpenIDConfigResponse message. Does not implicitly {@link google.container.v1beta1.GetOpenIDConfigResponse.verify|verify} messages.
                 * @param message GetOpenIDConfigResponse message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IGetOpenIDConfigResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified GetOpenIDConfigResponse message, length delimited. Does not implicitly {@link google.container.v1beta1.GetOpenIDConfigResponse.verify|verify} messages.
                 * @param message GetOpenIDConfigResponse message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IGetOpenIDConfigResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a GetOpenIDConfigResponse message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns GetOpenIDConfigResponse
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.GetOpenIDConfigResponse;

                /**
                 * Decodes a GetOpenIDConfigResponse message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns GetOpenIDConfigResponse
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.GetOpenIDConfigResponse;

                /**
                 * Verifies a GetOpenIDConfigResponse message.
                 * @param message Plain 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 GetOpenIDConfigResponse message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns GetOpenIDConfigResponse
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.GetOpenIDConfigResponse;

                /**
                 * Creates a plain object from a GetOpenIDConfigResponse message. Also converts values to other types if specified.
                 * @param message GetOpenIDConfigResponse
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.GetOpenIDConfigResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this GetOpenIDConfigResponse to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for GetOpenIDConfigResponse
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a GetJSONWebKeysRequest. */
            interface IGetJSONWebKeysRequest {

                /** GetJSONWebKeysRequest parent */
                parent?: (string|null);
            }

            /** Represents a GetJSONWebKeysRequest. */
            class GetJSONWebKeysRequest implements IGetJSONWebKeysRequest {

                /**
                 * Constructs a new GetJSONWebKeysRequest.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IGetJSONWebKeysRequest);

                /** GetJSONWebKeysRequest parent. */
                public parent: string;

                /**
                 * Creates a new GetJSONWebKeysRequest instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns GetJSONWebKeysRequest instance
                 */
                public static create(properties?: google.container.v1beta1.IGetJSONWebKeysRequest): google.container.v1beta1.GetJSONWebKeysRequest;

                /**
                 * Encodes the specified GetJSONWebKeysRequest message. Does not implicitly {@link google.container.v1beta1.GetJSONWebKeysRequest.verify|verify} messages.
                 * @param message GetJSONWebKeysRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IGetJSONWebKeysRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified GetJSONWebKeysRequest message, length delimited. Does not implicitly {@link google.container.v1beta1.GetJSONWebKeysRequest.verify|verify} messages.
                 * @param message GetJSONWebKeysRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IGetJSONWebKeysRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a GetJSONWebKeysRequest message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns GetJSONWebKeysRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.GetJSONWebKeysRequest;

                /**
                 * Decodes a GetJSONWebKeysRequest message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns GetJSONWebKeysRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.GetJSONWebKeysRequest;

                /**
                 * Verifies a GetJSONWebKeysRequest message.
                 * @param message Plain 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 GetJSONWebKeysRequest message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns GetJSONWebKeysRequest
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.GetJSONWebKeysRequest;

                /**
                 * Creates a plain object from a GetJSONWebKeysRequest message. Also converts values to other types if specified.
                 * @param message GetJSONWebKeysRequest
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.GetJSONWebKeysRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this GetJSONWebKeysRequest to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for GetJSONWebKeysRequest
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a Jwk. */
            interface IJwk {

                /** Jwk kty */
                kty?: (string|null);

                /** Jwk alg */
                alg?: (string|null);

                /** Jwk use */
                use?: (string|null);

                /** Jwk kid */
                kid?: (string|null);

                /** Jwk n */
                n?: (string|null);

                /** Jwk e */
                e?: (string|null);

                /** Jwk x */
                x?: (string|null);

                /** Jwk y */
                y?: (string|null);

                /** Jwk crv */
                crv?: (string|null);
            }

            /** Represents a Jwk. */
            class Jwk implements IJwk {

                /**
                 * Constructs a new Jwk.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IJwk);

                /** Jwk kty. */
                public kty: string;

                /** Jwk alg. */
                public alg: string;

                /** Jwk use. */
                public use: string;

                /** Jwk kid. */
                public kid: string;

                /** Jwk n. */
                public n: string;

                /** Jwk e. */
                public e: string;

                /** Jwk x. */
                public x: string;

                /** Jwk y. */
                public y: string;

                /** Jwk crv. */
                public crv: string;

                /**
                 * Creates a new Jwk instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns Jwk instance
                 */
                public static create(properties?: google.container.v1beta1.IJwk): google.container.v1beta1.Jwk;

                /**
                 * Encodes the specified Jwk message. Does not implicitly {@link google.container.v1beta1.Jwk.verify|verify} messages.
                 * @param message Jwk message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IJwk, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified Jwk message, length delimited. Does not implicitly {@link google.container.v1beta1.Jwk.verify|verify} messages.
                 * @param message Jwk message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IJwk, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a Jwk message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns Jwk
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.Jwk;

                /**
                 * Decodes a Jwk message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns Jwk
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.Jwk;

                /**
                 * Verifies a Jwk message.
                 * @param message Plain 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 Jwk message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns Jwk
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.Jwk;

                /**
                 * Creates a plain object from a Jwk message. Also converts values to other types if specified.
                 * @param message Jwk
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.Jwk, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this Jwk to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for Jwk
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a GetJSONWebKeysResponse. */
            interface IGetJSONWebKeysResponse {

                /** GetJSONWebKeysResponse keys */
                keys?: (google.container.v1beta1.IJwk[]|null);
            }

            /** Represents a GetJSONWebKeysResponse. */
            class GetJSONWebKeysResponse implements IGetJSONWebKeysResponse {

                /**
                 * Constructs a new GetJSONWebKeysResponse.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IGetJSONWebKeysResponse);

                /** GetJSONWebKeysResponse keys. */
                public keys: google.container.v1beta1.IJwk[];

                /**
                 * Creates a new GetJSONWebKeysResponse instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns GetJSONWebKeysResponse instance
                 */
                public static create(properties?: google.container.v1beta1.IGetJSONWebKeysResponse): google.container.v1beta1.GetJSONWebKeysResponse;

                /**
                 * Encodes the specified GetJSONWebKeysResponse message. Does not implicitly {@link google.container.v1beta1.GetJSONWebKeysResponse.verify|verify} messages.
                 * @param message GetJSONWebKeysResponse message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IGetJSONWebKeysResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified GetJSONWebKeysResponse message, length delimited. Does not implicitly {@link google.container.v1beta1.GetJSONWebKeysResponse.verify|verify} messages.
                 * @param message GetJSONWebKeysResponse message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IGetJSONWebKeysResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a GetJSONWebKeysResponse message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns GetJSONWebKeysResponse
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.GetJSONWebKeysResponse;

                /**
                 * Decodes a GetJSONWebKeysResponse message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns GetJSONWebKeysResponse
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.GetJSONWebKeysResponse;

                /**
                 * Verifies a GetJSONWebKeysResponse message.
                 * @param message Plain 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 GetJSONWebKeysResponse message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns GetJSONWebKeysResponse
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.GetJSONWebKeysResponse;

                /**
                 * Creates a plain object from a GetJSONWebKeysResponse message. Also converts values to other types if specified.
                 * @param message GetJSONWebKeysResponse
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.GetJSONWebKeysResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this GetJSONWebKeysResponse to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for GetJSONWebKeysResponse
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a CheckAutopilotCompatibilityRequest. */
            interface ICheckAutopilotCompatibilityRequest {

                /** CheckAutopilotCompatibilityRequest name */
                name?: (string|null);
            }

            /** Represents a CheckAutopilotCompatibilityRequest. */
            class CheckAutopilotCompatibilityRequest implements ICheckAutopilotCompatibilityRequest {

                /**
                 * Constructs a new CheckAutopilotCompatibilityRequest.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.ICheckAutopilotCompatibilityRequest);

                /** CheckAutopilotCompatibilityRequest name. */
                public name: string;

                /**
                 * Creates a new CheckAutopilotCompatibilityRequest instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns CheckAutopilotCompatibilityRequest instance
                 */
                public static create(properties?: google.container.v1beta1.ICheckAutopilotCompatibilityRequest): google.container.v1beta1.CheckAutopilotCompatibilityRequest;

                /**
                 * Encodes the specified CheckAutopilotCompatibilityRequest message. Does not implicitly {@link google.container.v1beta1.CheckAutopilotCompatibilityRequest.verify|verify} messages.
                 * @param message CheckAutopilotCompatibilityRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.ICheckAutopilotCompatibilityRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified CheckAutopilotCompatibilityRequest message, length delimited. Does not implicitly {@link google.container.v1beta1.CheckAutopilotCompatibilityRequest.verify|verify} messages.
                 * @param message CheckAutopilotCompatibilityRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.ICheckAutopilotCompatibilityRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a CheckAutopilotCompatibilityRequest message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns CheckAutopilotCompatibilityRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.CheckAutopilotCompatibilityRequest;

                /**
                 * Decodes a CheckAutopilotCompatibilityRequest message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns CheckAutopilotCompatibilityRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.CheckAutopilotCompatibilityRequest;

                /**
                 * Verifies a CheckAutopilotCompatibilityRequest message.
                 * @param message Plain 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 CheckAutopilotCompatibilityRequest message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns CheckAutopilotCompatibilityRequest
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.CheckAutopilotCompatibilityRequest;

                /**
                 * Creates a plain object from a CheckAutopilotCompatibilityRequest message. Also converts values to other types if specified.
                 * @param message CheckAutopilotCompatibilityRequest
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.CheckAutopilotCompatibilityRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this CheckAutopilotCompatibilityRequest to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for CheckAutopilotCompatibilityRequest
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of an AutopilotCompatibilityIssue. */
            interface IAutopilotCompatibilityIssue {

                /** AutopilotCompatibilityIssue lastObservation */
                lastObservation?: (google.protobuf.ITimestamp|null);

                /** AutopilotCompatibilityIssue constraintType */
                constraintType?: (string|null);

                /** AutopilotCompatibilityIssue incompatibilityType */
                incompatibilityType?: (google.container.v1beta1.AutopilotCompatibilityIssue.IssueType|keyof typeof google.container.v1beta1.AutopilotCompatibilityIssue.IssueType|null);

                /** AutopilotCompatibilityIssue subjects */
                subjects?: (string[]|null);

                /** AutopilotCompatibilityIssue documentationUrl */
                documentationUrl?: (string|null);

                /** AutopilotCompatibilityIssue description */
                description?: (string|null);
            }

            /** Represents an AutopilotCompatibilityIssue. */
            class AutopilotCompatibilityIssue implements IAutopilotCompatibilityIssue {

                /**
                 * Constructs a new AutopilotCompatibilityIssue.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IAutopilotCompatibilityIssue);

                /** AutopilotCompatibilityIssue lastObservation. */
                public lastObservation?: (google.protobuf.ITimestamp|null);

                /** AutopilotCompatibilityIssue constraintType. */
                public constraintType: string;

                /** AutopilotCompatibilityIssue incompatibilityType. */
                public incompatibilityType: (google.container.v1beta1.AutopilotCompatibilityIssue.IssueType|keyof typeof google.container.v1beta1.AutopilotCompatibilityIssue.IssueType);

                /** AutopilotCompatibilityIssue subjects. */
                public subjects: string[];

                /** AutopilotCompatibilityIssue documentationUrl. */
                public documentationUrl: string;

                /** AutopilotCompatibilityIssue description. */
                public description: string;

                /**
                 * Creates a new AutopilotCompatibilityIssue instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns AutopilotCompatibilityIssue instance
                 */
                public static create(properties?: google.container.v1beta1.IAutopilotCompatibilityIssue): google.container.v1beta1.AutopilotCompatibilityIssue;

                /**
                 * Encodes the specified AutopilotCompatibilityIssue message. Does not implicitly {@link google.container.v1beta1.AutopilotCompatibilityIssue.verify|verify} messages.
                 * @param message AutopilotCompatibilityIssue message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IAutopilotCompatibilityIssue, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified AutopilotCompatibilityIssue message, length delimited. Does not implicitly {@link google.container.v1beta1.AutopilotCompatibilityIssue.verify|verify} messages.
                 * @param message AutopilotCompatibilityIssue message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IAutopilotCompatibilityIssue, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes an AutopilotCompatibilityIssue message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns AutopilotCompatibilityIssue
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.AutopilotCompatibilityIssue;

                /**
                 * Decodes an AutopilotCompatibilityIssue message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns AutopilotCompatibilityIssue
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.AutopilotCompatibilityIssue;

                /**
                 * Verifies an AutopilotCompatibilityIssue message.
                 * @param message Plain 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 AutopilotCompatibilityIssue message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns AutopilotCompatibilityIssue
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.AutopilotCompatibilityIssue;

                /**
                 * Creates a plain object from an AutopilotCompatibilityIssue message. Also converts values to other types if specified.
                 * @param message AutopilotCompatibilityIssue
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.AutopilotCompatibilityIssue, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this AutopilotCompatibilityIssue to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for AutopilotCompatibilityIssue
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace AutopilotCompatibilityIssue {

                /** IssueType enum. */
                enum IssueType {
                    UNSPECIFIED = 0,
                    INCOMPATIBILITY = 1,
                    ADDITIONAL_CONFIG_REQUIRED = 2,
                    PASSED_WITH_OPTIONAL_CONFIG = 3
                }
            }

            /** Properties of a CheckAutopilotCompatibilityResponse. */
            interface ICheckAutopilotCompatibilityResponse {

                /** CheckAutopilotCompatibilityResponse issues */
                issues?: (google.container.v1beta1.IAutopilotCompatibilityIssue[]|null);

                /** CheckAutopilotCompatibilityResponse summary */
                summary?: (string|null);
            }

            /** Represents a CheckAutopilotCompatibilityResponse. */
            class CheckAutopilotCompatibilityResponse implements ICheckAutopilotCompatibilityResponse {

                /**
                 * Constructs a new CheckAutopilotCompatibilityResponse.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.ICheckAutopilotCompatibilityResponse);

                /** CheckAutopilotCompatibilityResponse issues. */
                public issues: google.container.v1beta1.IAutopilotCompatibilityIssue[];

                /** CheckAutopilotCompatibilityResponse summary. */
                public summary: string;

                /**
                 * Creates a new CheckAutopilotCompatibilityResponse instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns CheckAutopilotCompatibilityResponse instance
                 */
                public static create(properties?: google.container.v1beta1.ICheckAutopilotCompatibilityResponse): google.container.v1beta1.CheckAutopilotCompatibilityResponse;

                /**
                 * Encodes the specified CheckAutopilotCompatibilityResponse message. Does not implicitly {@link google.container.v1beta1.CheckAutopilotCompatibilityResponse.verify|verify} messages.
                 * @param message CheckAutopilotCompatibilityResponse message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.ICheckAutopilotCompatibilityResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified CheckAutopilotCompatibilityResponse message, length delimited. Does not implicitly {@link google.container.v1beta1.CheckAutopilotCompatibilityResponse.verify|verify} messages.
                 * @param message CheckAutopilotCompatibilityResponse message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.ICheckAutopilotCompatibilityResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a CheckAutopilotCompatibilityResponse message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns CheckAutopilotCompatibilityResponse
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.CheckAutopilotCompatibilityResponse;

                /**
                 * Decodes a CheckAutopilotCompatibilityResponse message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns CheckAutopilotCompatibilityResponse
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.CheckAutopilotCompatibilityResponse;

                /**
                 * Verifies a CheckAutopilotCompatibilityResponse message.
                 * @param message Plain 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 CheckAutopilotCompatibilityResponse message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns CheckAutopilotCompatibilityResponse
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.CheckAutopilotCompatibilityResponse;

                /**
                 * Creates a plain object from a CheckAutopilotCompatibilityResponse message. Also converts values to other types if specified.
                 * @param message CheckAutopilotCompatibilityResponse
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.CheckAutopilotCompatibilityResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this CheckAutopilotCompatibilityResponse to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for CheckAutopilotCompatibilityResponse
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a ReleaseChannel. */
            interface IReleaseChannel {

                /** ReleaseChannel channel */
                channel?: (google.container.v1beta1.ReleaseChannel.Channel|keyof typeof google.container.v1beta1.ReleaseChannel.Channel|null);
            }

            /** Represents a ReleaseChannel. */
            class ReleaseChannel implements IReleaseChannel {

                /**
                 * Constructs a new ReleaseChannel.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IReleaseChannel);

                /** ReleaseChannel channel. */
                public channel: (google.container.v1beta1.ReleaseChannel.Channel|keyof typeof google.container.v1beta1.ReleaseChannel.Channel);

                /**
                 * Creates a new ReleaseChannel instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ReleaseChannel instance
                 */
                public static create(properties?: google.container.v1beta1.IReleaseChannel): google.container.v1beta1.ReleaseChannel;

                /**
                 * Encodes the specified ReleaseChannel message. Does not implicitly {@link google.container.v1beta1.ReleaseChannel.verify|verify} messages.
                 * @param message ReleaseChannel message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IReleaseChannel, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified ReleaseChannel message, length delimited. Does not implicitly {@link google.container.v1beta1.ReleaseChannel.verify|verify} messages.
                 * @param message ReleaseChannel message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IReleaseChannel, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a ReleaseChannel message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ReleaseChannel
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.ReleaseChannel;

                /**
                 * Decodes a ReleaseChannel message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ReleaseChannel
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.ReleaseChannel;

                /**
                 * Verifies a ReleaseChannel message.
                 * @param message Plain 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 ReleaseChannel message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ReleaseChannel
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.ReleaseChannel;

                /**
                 * Creates a plain object from a ReleaseChannel message. Also converts values to other types if specified.
                 * @param message ReleaseChannel
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.ReleaseChannel, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ReleaseChannel to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for ReleaseChannel
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace ReleaseChannel {

                /** Channel enum. */
                enum Channel {
                    UNSPECIFIED = 0,
                    RAPID = 1,
                    REGULAR = 2,
                    STABLE = 3,
                    EXTENDED = 4
                }
            }

            /** Properties of a CostManagementConfig. */
            interface ICostManagementConfig {

                /** CostManagementConfig enabled */
                enabled?: (boolean|null);
            }

            /** Represents a CostManagementConfig. */
            class CostManagementConfig implements ICostManagementConfig {

                /**
                 * Constructs a new CostManagementConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.ICostManagementConfig);

                /** CostManagementConfig enabled. */
                public enabled: boolean;

                /**
                 * Creates a new CostManagementConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns CostManagementConfig instance
                 */
                public static create(properties?: google.container.v1beta1.ICostManagementConfig): google.container.v1beta1.CostManagementConfig;

                /**
                 * Encodes the specified CostManagementConfig message. Does not implicitly {@link google.container.v1beta1.CostManagementConfig.verify|verify} messages.
                 * @param message CostManagementConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.ICostManagementConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified CostManagementConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.CostManagementConfig.verify|verify} messages.
                 * @param message CostManagementConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.ICostManagementConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a CostManagementConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns CostManagementConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.CostManagementConfig;

                /**
                 * Decodes a CostManagementConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns CostManagementConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.CostManagementConfig;

                /**
                 * Verifies a CostManagementConfig message.
                 * @param message Plain 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 CostManagementConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns CostManagementConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.CostManagementConfig;

                /**
                 * Creates a plain object from a CostManagementConfig message. Also converts values to other types if specified.
                 * @param message CostManagementConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.CostManagementConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this CostManagementConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for CostManagementConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a TpuConfig. */
            interface ITpuConfig {

                /** TpuConfig enabled */
                enabled?: (boolean|null);

                /** TpuConfig useServiceNetworking */
                useServiceNetworking?: (boolean|null);

                /** TpuConfig ipv4CidrBlock */
                ipv4CidrBlock?: (string|null);
            }

            /** Represents a TpuConfig. */
            class TpuConfig implements ITpuConfig {

                /**
                 * Constructs a new TpuConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.ITpuConfig);

                /** TpuConfig enabled. */
                public enabled: boolean;

                /** TpuConfig useServiceNetworking. */
                public useServiceNetworking: boolean;

                /** TpuConfig ipv4CidrBlock. */
                public ipv4CidrBlock: string;

                /**
                 * Creates a new TpuConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns TpuConfig instance
                 */
                public static create(properties?: google.container.v1beta1.ITpuConfig): google.container.v1beta1.TpuConfig;

                /**
                 * Encodes the specified TpuConfig message. Does not implicitly {@link google.container.v1beta1.TpuConfig.verify|verify} messages.
                 * @param message TpuConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.ITpuConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified TpuConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.TpuConfig.verify|verify} messages.
                 * @param message TpuConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.ITpuConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a TpuConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns TpuConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.TpuConfig;

                /**
                 * Decodes a TpuConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns TpuConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.TpuConfig;

                /**
                 * Verifies a TpuConfig message.
                 * @param message Plain 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 TpuConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns TpuConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.TpuConfig;

                /**
                 * Creates a plain object from a TpuConfig message. Also converts values to other types if specified.
                 * @param message TpuConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.TpuConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this TpuConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for TpuConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** PrivateIPv6GoogleAccess enum. */
            enum PrivateIPv6GoogleAccess {
                PRIVATE_IPV6_GOOGLE_ACCESS_UNSPECIFIED = 0,
                PRIVATE_IPV6_GOOGLE_ACCESS_DISABLED = 1,
                PRIVATE_IPV6_GOOGLE_ACCESS_TO_GOOGLE = 2,
                PRIVATE_IPV6_GOOGLE_ACCESS_BIDIRECTIONAL = 3
            }

            /** Properties of a Master. */
            interface IMaster {

                /** Master compatibilityStatus */
                compatibilityStatus?: (google.container.v1beta1.ICompatibilityStatus|null);
            }

            /** Represents a Master. */
            class Master implements IMaster {

                /**
                 * Constructs a new Master.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IMaster);

                /** Master compatibilityStatus. */
                public compatibilityStatus?: (google.container.v1beta1.ICompatibilityStatus|null);

                /**
                 * Creates a new Master instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns Master instance
                 */
                public static create(properties?: google.container.v1beta1.IMaster): google.container.v1beta1.Master;

                /**
                 * Encodes the specified Master message. Does not implicitly {@link google.container.v1beta1.Master.verify|verify} messages.
                 * @param message Master message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IMaster, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified Master message, length delimited. Does not implicitly {@link google.container.v1beta1.Master.verify|verify} messages.
                 * @param message Master message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IMaster, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a Master message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns Master
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.Master;

                /**
                 * Decodes a Master message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns Master
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.Master;

                /**
                 * Verifies a Master message.
                 * @param message Plain 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 Master message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns Master
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.Master;

                /**
                 * Creates a plain object from a Master message. Also converts values to other types if specified.
                 * @param message Master
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.Master, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this Master to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for Master
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a CompatibilityStatus. */
            interface ICompatibilityStatus {

                /** CompatibilityStatus downgradableVersion */
                downgradableVersion?: (string|null);

                /** CompatibilityStatus emulatedVersionTime */
                emulatedVersionTime?: (google.protobuf.ITimestamp|null);
            }

            /** Represents a CompatibilityStatus. */
            class CompatibilityStatus implements ICompatibilityStatus {

                /**
                 * Constructs a new CompatibilityStatus.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.ICompatibilityStatus);

                /** CompatibilityStatus downgradableVersion. */
                public downgradableVersion: string;

                /** CompatibilityStatus emulatedVersionTime. */
                public emulatedVersionTime?: (google.protobuf.ITimestamp|null);

                /**
                 * Creates a new CompatibilityStatus instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns CompatibilityStatus instance
                 */
                public static create(properties?: google.container.v1beta1.ICompatibilityStatus): google.container.v1beta1.CompatibilityStatus;

                /**
                 * Encodes the specified CompatibilityStatus message. Does not implicitly {@link google.container.v1beta1.CompatibilityStatus.verify|verify} messages.
                 * @param message CompatibilityStatus message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.ICompatibilityStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified CompatibilityStatus message, length delimited. Does not implicitly {@link google.container.v1beta1.CompatibilityStatus.verify|verify} messages.
                 * @param message CompatibilityStatus message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.ICompatibilityStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a CompatibilityStatus message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns CompatibilityStatus
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.CompatibilityStatus;

                /**
                 * Decodes a CompatibilityStatus message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns CompatibilityStatus
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.CompatibilityStatus;

                /**
                 * Verifies a CompatibilityStatus message.
                 * @param message Plain 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 CompatibilityStatus message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns CompatibilityStatus
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.CompatibilityStatus;

                /**
                 * Creates a plain object from a CompatibilityStatus message. Also converts values to other types if specified.
                 * @param message CompatibilityStatus
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.CompatibilityStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this CompatibilityStatus to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for CompatibilityStatus
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a RollbackSafeUpgrade. */
            interface IRollbackSafeUpgrade {

                /** RollbackSafeUpgrade controlPlaneSoakDuration */
                controlPlaneSoakDuration?: (google.protobuf.IDuration|null);
            }

            /** Represents a RollbackSafeUpgrade. */
            class RollbackSafeUpgrade implements IRollbackSafeUpgrade {

                /**
                 * Constructs a new RollbackSafeUpgrade.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IRollbackSafeUpgrade);

                /** RollbackSafeUpgrade controlPlaneSoakDuration. */
                public controlPlaneSoakDuration?: (google.protobuf.IDuration|null);

                /**
                 * Creates a new RollbackSafeUpgrade instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns RollbackSafeUpgrade instance
                 */
                public static create(properties?: google.container.v1beta1.IRollbackSafeUpgrade): google.container.v1beta1.RollbackSafeUpgrade;

                /**
                 * Encodes the specified RollbackSafeUpgrade message. Does not implicitly {@link google.container.v1beta1.RollbackSafeUpgrade.verify|verify} messages.
                 * @param message RollbackSafeUpgrade message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IRollbackSafeUpgrade, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified RollbackSafeUpgrade message, length delimited. Does not implicitly {@link google.container.v1beta1.RollbackSafeUpgrade.verify|verify} messages.
                 * @param message RollbackSafeUpgrade message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IRollbackSafeUpgrade, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a RollbackSafeUpgrade message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns RollbackSafeUpgrade
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.RollbackSafeUpgrade;

                /**
                 * Decodes a RollbackSafeUpgrade message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns RollbackSafeUpgrade
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.RollbackSafeUpgrade;

                /**
                 * Verifies a RollbackSafeUpgrade message.
                 * @param message Plain 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 RollbackSafeUpgrade message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns RollbackSafeUpgrade
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.RollbackSafeUpgrade;

                /**
                 * Creates a plain object from a RollbackSafeUpgrade message. Also converts values to other types if specified.
                 * @param message RollbackSafeUpgrade
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.RollbackSafeUpgrade, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this RollbackSafeUpgrade to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for RollbackSafeUpgrade
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of an AutopilotConversionStatus. */
            interface IAutopilotConversionStatus {

                /** AutopilotConversionStatus state */
                state?: (google.container.v1beta1.AutopilotConversionStatus.State|keyof typeof google.container.v1beta1.AutopilotConversionStatus.State|null);
            }

            /** Represents an AutopilotConversionStatus. */
            class AutopilotConversionStatus implements IAutopilotConversionStatus {

                /**
                 * Constructs a new AutopilotConversionStatus.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IAutopilotConversionStatus);

                /** AutopilotConversionStatus state. */
                public state: (google.container.v1beta1.AutopilotConversionStatus.State|keyof typeof google.container.v1beta1.AutopilotConversionStatus.State);

                /**
                 * Creates a new AutopilotConversionStatus instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns AutopilotConversionStatus instance
                 */
                public static create(properties?: google.container.v1beta1.IAutopilotConversionStatus): google.container.v1beta1.AutopilotConversionStatus;

                /**
                 * Encodes the specified AutopilotConversionStatus message. Does not implicitly {@link google.container.v1beta1.AutopilotConversionStatus.verify|verify} messages.
                 * @param message AutopilotConversionStatus message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IAutopilotConversionStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified AutopilotConversionStatus message, length delimited. Does not implicitly {@link google.container.v1beta1.AutopilotConversionStatus.verify|verify} messages.
                 * @param message AutopilotConversionStatus message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IAutopilotConversionStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes an AutopilotConversionStatus message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns AutopilotConversionStatus
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.AutopilotConversionStatus;

                /**
                 * Decodes an AutopilotConversionStatus message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns AutopilotConversionStatus
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.AutopilotConversionStatus;

                /**
                 * Verifies an AutopilotConversionStatus message.
                 * @param message Plain 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 AutopilotConversionStatus message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns AutopilotConversionStatus
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.AutopilotConversionStatus;

                /**
                 * Creates a plain object from an AutopilotConversionStatus message. Also converts values to other types if specified.
                 * @param message AutopilotConversionStatus
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.AutopilotConversionStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this AutopilotConversionStatus to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for AutopilotConversionStatus
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace AutopilotConversionStatus {

                /** State enum. */
                enum State {
                    STATE_UNSPECIFIED = 0,
                    DONE = 5
                }
            }

            /** Properties of an Autopilot. */
            interface IAutopilot {

                /** Autopilot enabled */
                enabled?: (boolean|null);

                /** Autopilot workloadPolicyConfig */
                workloadPolicyConfig?: (google.container.v1beta1.IWorkloadPolicyConfig|null);

                /** Autopilot conversionStatus */
                conversionStatus?: (google.container.v1beta1.IAutopilotConversionStatus|null);

                /** Autopilot privilegedAdmissionConfig */
                privilegedAdmissionConfig?: (google.container.v1beta1.IPrivilegedAdmissionConfig|null);

                /** Autopilot clusterPolicyConfig */
                clusterPolicyConfig?: (google.container.v1beta1.IClusterPolicyConfig|null);
            }

            /** Represents an Autopilot. */
            class Autopilot implements IAutopilot {

                /**
                 * Constructs a new Autopilot.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IAutopilot);

                /** Autopilot enabled. */
                public enabled: boolean;

                /** Autopilot workloadPolicyConfig. */
                public workloadPolicyConfig?: (google.container.v1beta1.IWorkloadPolicyConfig|null);

                /** Autopilot conversionStatus. */
                public conversionStatus?: (google.container.v1beta1.IAutopilotConversionStatus|null);

                /** Autopilot privilegedAdmissionConfig. */
                public privilegedAdmissionConfig?: (google.container.v1beta1.IPrivilegedAdmissionConfig|null);

                /** Autopilot clusterPolicyConfig. */
                public clusterPolicyConfig?: (google.container.v1beta1.IClusterPolicyConfig|null);

                /**
                 * Creates a new Autopilot instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns Autopilot instance
                 */
                public static create(properties?: google.container.v1beta1.IAutopilot): google.container.v1beta1.Autopilot;

                /**
                 * Encodes the specified Autopilot message. Does not implicitly {@link google.container.v1beta1.Autopilot.verify|verify} messages.
                 * @param message Autopilot message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IAutopilot, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified Autopilot message, length delimited. Does not implicitly {@link google.container.v1beta1.Autopilot.verify|verify} messages.
                 * @param message Autopilot message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IAutopilot, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes an Autopilot message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns Autopilot
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.Autopilot;

                /**
                 * Decodes an Autopilot message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns Autopilot
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.Autopilot;

                /**
                 * Verifies an Autopilot message.
                 * @param message Plain 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 Autopilot message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns Autopilot
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.Autopilot;

                /**
                 * Creates a plain object from an Autopilot message. Also converts values to other types if specified.
                 * @param message Autopilot
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.Autopilot, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this Autopilot to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for Autopilot
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a ClusterPolicyConfig. */
            interface IClusterPolicyConfig {

                /** ClusterPolicyConfig noSystemMutation */
                noSystemMutation?: (boolean|null);

                /** ClusterPolicyConfig noSystemImpersonation */
                noSystemImpersonation?: (boolean|null);

                /** ClusterPolicyConfig noUnsafeWebhooks */
                noUnsafeWebhooks?: (boolean|null);

                /** ClusterPolicyConfig noStandardNodePools */
                noStandardNodePools?: (boolean|null);
            }

            /** Represents a ClusterPolicyConfig. */
            class ClusterPolicyConfig implements IClusterPolicyConfig {

                /**
                 * Constructs a new ClusterPolicyConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IClusterPolicyConfig);

                /** ClusterPolicyConfig noSystemMutation. */
                public noSystemMutation?: (boolean|null);

                /** ClusterPolicyConfig noSystemImpersonation. */
                public noSystemImpersonation?: (boolean|null);

                /** ClusterPolicyConfig noUnsafeWebhooks. */
                public noUnsafeWebhooks?: (boolean|null);

                /** ClusterPolicyConfig noStandardNodePools. */
                public noStandardNodePools?: (boolean|null);

                /**
                 * Creates a new ClusterPolicyConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ClusterPolicyConfig instance
                 */
                public static create(properties?: google.container.v1beta1.IClusterPolicyConfig): google.container.v1beta1.ClusterPolicyConfig;

                /**
                 * Encodes the specified ClusterPolicyConfig message. Does not implicitly {@link google.container.v1beta1.ClusterPolicyConfig.verify|verify} messages.
                 * @param message ClusterPolicyConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IClusterPolicyConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified ClusterPolicyConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.ClusterPolicyConfig.verify|verify} messages.
                 * @param message ClusterPolicyConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IClusterPolicyConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a ClusterPolicyConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ClusterPolicyConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.ClusterPolicyConfig;

                /**
                 * Decodes a ClusterPolicyConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ClusterPolicyConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.ClusterPolicyConfig;

                /**
                 * Verifies a ClusterPolicyConfig message.
                 * @param message Plain 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 ClusterPolicyConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ClusterPolicyConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.ClusterPolicyConfig;

                /**
                 * Creates a plain object from a ClusterPolicyConfig message. Also converts values to other types if specified.
                 * @param message ClusterPolicyConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.ClusterPolicyConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ClusterPolicyConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for ClusterPolicyConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a PrivilegedAdmissionConfig. */
            interface IPrivilegedAdmissionConfig {

                /** PrivilegedAdmissionConfig allowlistPaths */
                allowlistPaths?: (string[]|null);
            }

            /** Represents a PrivilegedAdmissionConfig. */
            class PrivilegedAdmissionConfig implements IPrivilegedAdmissionConfig {

                /**
                 * Constructs a new PrivilegedAdmissionConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IPrivilegedAdmissionConfig);

                /** PrivilegedAdmissionConfig allowlistPaths. */
                public allowlistPaths: string[];

                /**
                 * Creates a new PrivilegedAdmissionConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns PrivilegedAdmissionConfig instance
                 */
                public static create(properties?: google.container.v1beta1.IPrivilegedAdmissionConfig): google.container.v1beta1.PrivilegedAdmissionConfig;

                /**
                 * Encodes the specified PrivilegedAdmissionConfig message. Does not implicitly {@link google.container.v1beta1.PrivilegedAdmissionConfig.verify|verify} messages.
                 * @param message PrivilegedAdmissionConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IPrivilegedAdmissionConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified PrivilegedAdmissionConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.PrivilegedAdmissionConfig.verify|verify} messages.
                 * @param message PrivilegedAdmissionConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IPrivilegedAdmissionConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a PrivilegedAdmissionConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns PrivilegedAdmissionConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.PrivilegedAdmissionConfig;

                /**
                 * Decodes a PrivilegedAdmissionConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns PrivilegedAdmissionConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.PrivilegedAdmissionConfig;

                /**
                 * Verifies a PrivilegedAdmissionConfig message.
                 * @param message Plain 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 PrivilegedAdmissionConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns PrivilegedAdmissionConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.PrivilegedAdmissionConfig;

                /**
                 * Creates a plain object from a PrivilegedAdmissionConfig message. Also converts values to other types if specified.
                 * @param message PrivilegedAdmissionConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.PrivilegedAdmissionConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this PrivilegedAdmissionConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for PrivilegedAdmissionConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a WorkloadPolicyConfig. */
            interface IWorkloadPolicyConfig {

                /** WorkloadPolicyConfig allowNetAdmin */
                allowNetAdmin?: (boolean|null);

                /** WorkloadPolicyConfig autopilotCompatibilityAuditingEnabled */
                autopilotCompatibilityAuditingEnabled?: (boolean|null);
            }

            /** Represents a WorkloadPolicyConfig. */
            class WorkloadPolicyConfig implements IWorkloadPolicyConfig {

                /**
                 * Constructs a new WorkloadPolicyConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IWorkloadPolicyConfig);

                /** WorkloadPolicyConfig allowNetAdmin. */
                public allowNetAdmin?: (boolean|null);

                /** WorkloadPolicyConfig autopilotCompatibilityAuditingEnabled. */
                public autopilotCompatibilityAuditingEnabled?: (boolean|null);

                /**
                 * Creates a new WorkloadPolicyConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns WorkloadPolicyConfig instance
                 */
                public static create(properties?: google.container.v1beta1.IWorkloadPolicyConfig): google.container.v1beta1.WorkloadPolicyConfig;

                /**
                 * Encodes the specified WorkloadPolicyConfig message. Does not implicitly {@link google.container.v1beta1.WorkloadPolicyConfig.verify|verify} messages.
                 * @param message WorkloadPolicyConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IWorkloadPolicyConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified WorkloadPolicyConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.WorkloadPolicyConfig.verify|verify} messages.
                 * @param message WorkloadPolicyConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IWorkloadPolicyConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a WorkloadPolicyConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns WorkloadPolicyConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.WorkloadPolicyConfig;

                /**
                 * Decodes a WorkloadPolicyConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns WorkloadPolicyConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.WorkloadPolicyConfig;

                /**
                 * Verifies a WorkloadPolicyConfig message.
                 * @param message Plain 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 WorkloadPolicyConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns WorkloadPolicyConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.WorkloadPolicyConfig;

                /**
                 * Creates a plain object from a WorkloadPolicyConfig message. Also converts values to other types if specified.
                 * @param message WorkloadPolicyConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.WorkloadPolicyConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this WorkloadPolicyConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for WorkloadPolicyConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a NodePoolUpgradeConcurrencyConfig. */
            interface INodePoolUpgradeConcurrencyConfig {

                /** NodePoolUpgradeConcurrencyConfig maxCount */
                maxCount?: (number|Long|string|null);
            }

            /** Represents a NodePoolUpgradeConcurrencyConfig. */
            class NodePoolUpgradeConcurrencyConfig implements INodePoolUpgradeConcurrencyConfig {

                /**
                 * Constructs a new NodePoolUpgradeConcurrencyConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.INodePoolUpgradeConcurrencyConfig);

                /** NodePoolUpgradeConcurrencyConfig maxCount. */
                public maxCount?: (number|Long|string|null);

                /** NodePoolUpgradeConcurrencyConfig concurrency. */
                public concurrency?: "maxCount";

                /**
                 * Creates a new NodePoolUpgradeConcurrencyConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns NodePoolUpgradeConcurrencyConfig instance
                 */
                public static create(properties?: google.container.v1beta1.INodePoolUpgradeConcurrencyConfig): google.container.v1beta1.NodePoolUpgradeConcurrencyConfig;

                /**
                 * Encodes the specified NodePoolUpgradeConcurrencyConfig message. Does not implicitly {@link google.container.v1beta1.NodePoolUpgradeConcurrencyConfig.verify|verify} messages.
                 * @param message NodePoolUpgradeConcurrencyConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.INodePoolUpgradeConcurrencyConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified NodePoolUpgradeConcurrencyConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.NodePoolUpgradeConcurrencyConfig.verify|verify} messages.
                 * @param message NodePoolUpgradeConcurrencyConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.INodePoolUpgradeConcurrencyConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a NodePoolUpgradeConcurrencyConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns NodePoolUpgradeConcurrencyConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.NodePoolUpgradeConcurrencyConfig;

                /**
                 * Decodes a NodePoolUpgradeConcurrencyConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns NodePoolUpgradeConcurrencyConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.NodePoolUpgradeConcurrencyConfig;

                /**
                 * Verifies a NodePoolUpgradeConcurrencyConfig message.
                 * @param message Plain 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 NodePoolUpgradeConcurrencyConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns NodePoolUpgradeConcurrencyConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.NodePoolUpgradeConcurrencyConfig;

                /**
                 * Creates a plain object from a NodePoolUpgradeConcurrencyConfig message. Also converts values to other types if specified.
                 * @param message NodePoolUpgradeConcurrencyConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.NodePoolUpgradeConcurrencyConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this NodePoolUpgradeConcurrencyConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for NodePoolUpgradeConcurrencyConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a NotificationConfig. */
            interface INotificationConfig {

                /** NotificationConfig pubsub */
                pubsub?: (google.container.v1beta1.NotificationConfig.IPubSub|null);
            }

            /** Represents a NotificationConfig. */
            class NotificationConfig implements INotificationConfig {

                /**
                 * Constructs a new NotificationConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.INotificationConfig);

                /** NotificationConfig pubsub. */
                public pubsub?: (google.container.v1beta1.NotificationConfig.IPubSub|null);

                /**
                 * Creates a new NotificationConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns NotificationConfig instance
                 */
                public static create(properties?: google.container.v1beta1.INotificationConfig): google.container.v1beta1.NotificationConfig;

                /**
                 * Encodes the specified NotificationConfig message. Does not implicitly {@link google.container.v1beta1.NotificationConfig.verify|verify} messages.
                 * @param message NotificationConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.INotificationConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified NotificationConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.NotificationConfig.verify|verify} messages.
                 * @param message NotificationConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.INotificationConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a NotificationConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns NotificationConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.NotificationConfig;

                /**
                 * Decodes a NotificationConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns NotificationConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.NotificationConfig;

                /**
                 * Verifies a NotificationConfig message.
                 * @param message Plain 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 NotificationConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns NotificationConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.NotificationConfig;

                /**
                 * Creates a plain object from a NotificationConfig message. Also converts values to other types if specified.
                 * @param message NotificationConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.NotificationConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this NotificationConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for NotificationConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace NotificationConfig {

                /** EventType enum. */
                enum EventType {
                    EVENT_TYPE_UNSPECIFIED = 0,
                    UPGRADE_AVAILABLE_EVENT = 1,
                    UPGRADE_EVENT = 2,
                    SECURITY_BULLETIN_EVENT = 3,
                    UPGRADE_INFO_EVENT = 4
                }

                /** Properties of a PubSub. */
                interface IPubSub {

                    /** PubSub enabled */
                    enabled?: (boolean|null);

                    /** PubSub topic */
                    topic?: (string|null);

                    /** PubSub filter */
                    filter?: (google.container.v1beta1.NotificationConfig.IFilter|null);
                }

                /** Represents a PubSub. */
                class PubSub implements IPubSub {

                    /**
                     * Constructs a new PubSub.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.container.v1beta1.NotificationConfig.IPubSub);

                    /** PubSub enabled. */
                    public enabled: boolean;

                    /** PubSub topic. */
                    public topic: string;

                    /** PubSub filter. */
                    public filter?: (google.container.v1beta1.NotificationConfig.IFilter|null);

                    /**
                     * Creates a new PubSub instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PubSub instance
                     */
                    public static create(properties?: google.container.v1beta1.NotificationConfig.IPubSub): google.container.v1beta1.NotificationConfig.PubSub;

                    /**
                     * Encodes the specified PubSub message. Does not implicitly {@link google.container.v1beta1.NotificationConfig.PubSub.verify|verify} messages.
                     * @param message PubSub message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.container.v1beta1.NotificationConfig.IPubSub, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PubSub message, length delimited. Does not implicitly {@link google.container.v1beta1.NotificationConfig.PubSub.verify|verify} messages.
                     * @param message PubSub message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.container.v1beta1.NotificationConfig.IPubSub, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PubSub message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PubSub
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.NotificationConfig.PubSub;

                    /**
                     * Decodes a PubSub message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PubSub
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.NotificationConfig.PubSub;

                    /**
                     * Verifies a PubSub message.
                     * @param message Plain 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 PubSub message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PubSub
                     */
                    public static fromObject(object: { [k: string]: any }): google.container.v1beta1.NotificationConfig.PubSub;

                    /**
                     * Creates a plain object from a PubSub message. Also converts values to other types if specified.
                     * @param message PubSub
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.container.v1beta1.NotificationConfig.PubSub, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PubSub to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PubSub
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a Filter. */
                interface IFilter {

                    /** Filter eventType */
                    eventType?: (google.container.v1beta1.NotificationConfig.EventType[]|null);
                }

                /** Represents a Filter. */
                class Filter implements IFilter {

                    /**
                     * Constructs a new Filter.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.container.v1beta1.NotificationConfig.IFilter);

                    /** Filter eventType. */
                    public eventType: google.container.v1beta1.NotificationConfig.EventType[];

                    /**
                     * Creates a new Filter instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Filter instance
                     */
                    public static create(properties?: google.container.v1beta1.NotificationConfig.IFilter): google.container.v1beta1.NotificationConfig.Filter;

                    /**
                     * Encodes the specified Filter message. Does not implicitly {@link google.container.v1beta1.NotificationConfig.Filter.verify|verify} messages.
                     * @param message Filter message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.container.v1beta1.NotificationConfig.IFilter, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Filter message, length delimited. Does not implicitly {@link google.container.v1beta1.NotificationConfig.Filter.verify|verify} messages.
                     * @param message Filter message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.container.v1beta1.NotificationConfig.IFilter, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Filter message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Filter
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.NotificationConfig.Filter;

                    /**
                     * Decodes a Filter message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Filter
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.NotificationConfig.Filter;

                    /**
                     * Verifies a Filter message.
                     * @param message Plain 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 Filter message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Filter
                     */
                    public static fromObject(object: { [k: string]: any }): google.container.v1beta1.NotificationConfig.Filter;

                    /**
                     * Creates a plain object from a Filter message. Also converts values to other types if specified.
                     * @param message Filter
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.container.v1beta1.NotificationConfig.Filter, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Filter to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Filter
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }
            }

            /** Properties of a ConfidentialNodes. */
            interface IConfidentialNodes {

                /** ConfidentialNodes enabled */
                enabled?: (boolean|null);

                /** ConfidentialNodes confidentialInstanceType */
                confidentialInstanceType?: (google.container.v1beta1.ConfidentialNodes.ConfidentialInstanceType|keyof typeof google.container.v1beta1.ConfidentialNodes.ConfidentialInstanceType|null);
            }

            /** Represents a ConfidentialNodes. */
            class ConfidentialNodes implements IConfidentialNodes {

                /**
                 * Constructs a new ConfidentialNodes.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IConfidentialNodes);

                /** ConfidentialNodes enabled. */
                public enabled: boolean;

                /** ConfidentialNodes confidentialInstanceType. */
                public confidentialInstanceType: (google.container.v1beta1.ConfidentialNodes.ConfidentialInstanceType|keyof typeof google.container.v1beta1.ConfidentialNodes.ConfidentialInstanceType);

                /**
                 * Creates a new ConfidentialNodes instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ConfidentialNodes instance
                 */
                public static create(properties?: google.container.v1beta1.IConfidentialNodes): google.container.v1beta1.ConfidentialNodes;

                /**
                 * Encodes the specified ConfidentialNodes message. Does not implicitly {@link google.container.v1beta1.ConfidentialNodes.verify|verify} messages.
                 * @param message ConfidentialNodes message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IConfidentialNodes, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified ConfidentialNodes message, length delimited. Does not implicitly {@link google.container.v1beta1.ConfidentialNodes.verify|verify} messages.
                 * @param message ConfidentialNodes message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IConfidentialNodes, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a ConfidentialNodes message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ConfidentialNodes
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.ConfidentialNodes;

                /**
                 * Decodes a ConfidentialNodes message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ConfidentialNodes
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.ConfidentialNodes;

                /**
                 * Verifies a ConfidentialNodes message.
                 * @param message Plain 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 ConfidentialNodes message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ConfidentialNodes
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.ConfidentialNodes;

                /**
                 * Creates a plain object from a ConfidentialNodes message. Also converts values to other types if specified.
                 * @param message ConfidentialNodes
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.ConfidentialNodes, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ConfidentialNodes to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for ConfidentialNodes
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace ConfidentialNodes {

                /** ConfidentialInstanceType enum. */
                enum ConfidentialInstanceType {
                    CONFIDENTIAL_INSTANCE_TYPE_UNSPECIFIED = 0,
                    SEV = 1,
                    SEV_SNP = 2,
                    TDX = 3
                }
            }

            /** UpgradeResourceType enum. */
            enum UpgradeResourceType {
                UPGRADE_RESOURCE_TYPE_UNSPECIFIED = 0,
                MASTER = 1,
                NODE_POOL = 2
            }

            /** Properties of an UpgradeEvent. */
            interface IUpgradeEvent {

                /** UpgradeEvent resourceType */
                resourceType?: (google.container.v1beta1.UpgradeResourceType|keyof typeof google.container.v1beta1.UpgradeResourceType|null);

                /** UpgradeEvent operation */
                operation?: (string|null);

                /** UpgradeEvent operationStartTime */
                operationStartTime?: (google.protobuf.ITimestamp|null);

                /** UpgradeEvent currentVersion */
                currentVersion?: (string|null);

                /** UpgradeEvent targetVersion */
                targetVersion?: (string|null);

                /** UpgradeEvent currentEmulatedVersion */
                currentEmulatedVersion?: (string|null);

                /** UpgradeEvent targetEmulatedVersion */
                targetEmulatedVersion?: (string|null);

                /** UpgradeEvent resource */
                resource?: (string|null);
            }

            /** Represents an UpgradeEvent. */
            class UpgradeEvent implements IUpgradeEvent {

                /**
                 * Constructs a new UpgradeEvent.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IUpgradeEvent);

                /** UpgradeEvent resourceType. */
                public resourceType: (google.container.v1beta1.UpgradeResourceType|keyof typeof google.container.v1beta1.UpgradeResourceType);

                /** UpgradeEvent operation. */
                public operation: string;

                /** UpgradeEvent operationStartTime. */
                public operationStartTime?: (google.protobuf.ITimestamp|null);

                /** UpgradeEvent currentVersion. */
                public currentVersion: string;

                /** UpgradeEvent targetVersion. */
                public targetVersion: string;

                /** UpgradeEvent currentEmulatedVersion. */
                public currentEmulatedVersion: string;

                /** UpgradeEvent targetEmulatedVersion. */
                public targetEmulatedVersion: string;

                /** UpgradeEvent resource. */
                public resource: string;

                /**
                 * Creates a new UpgradeEvent instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns UpgradeEvent instance
                 */
                public static create(properties?: google.container.v1beta1.IUpgradeEvent): google.container.v1beta1.UpgradeEvent;

                /**
                 * Encodes the specified UpgradeEvent message. Does not implicitly {@link google.container.v1beta1.UpgradeEvent.verify|verify} messages.
                 * @param message UpgradeEvent message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IUpgradeEvent, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified UpgradeEvent message, length delimited. Does not implicitly {@link google.container.v1beta1.UpgradeEvent.verify|verify} messages.
                 * @param message UpgradeEvent message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IUpgradeEvent, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes an UpgradeEvent message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns UpgradeEvent
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.UpgradeEvent;

                /**
                 * Decodes an UpgradeEvent message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns UpgradeEvent
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.UpgradeEvent;

                /**
                 * Verifies an UpgradeEvent message.
                 * @param message Plain 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 UpgradeEvent message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns UpgradeEvent
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.UpgradeEvent;

                /**
                 * Creates a plain object from an UpgradeEvent message. Also converts values to other types if specified.
                 * @param message UpgradeEvent
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.UpgradeEvent, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this UpgradeEvent to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for UpgradeEvent
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of an UpgradeInfoEvent. */
            interface IUpgradeInfoEvent {

                /** UpgradeInfoEvent resourceType */
                resourceType?: (google.container.v1beta1.UpgradeResourceType|keyof typeof google.container.v1beta1.UpgradeResourceType|null);

                /** UpgradeInfoEvent operation */
                operation?: (string|null);

                /** UpgradeInfoEvent startTime */
                startTime?: (google.protobuf.ITimestamp|null);

                /** UpgradeInfoEvent endTime */
                endTime?: (google.protobuf.ITimestamp|null);

                /** UpgradeInfoEvent currentVersion */
                currentVersion?: (string|null);

                /** UpgradeInfoEvent targetVersion */
                targetVersion?: (string|null);

                /** UpgradeInfoEvent currentEmulatedVersion */
                currentEmulatedVersion?: (string|null);

                /** UpgradeInfoEvent targetEmulatedVersion */
                targetEmulatedVersion?: (string|null);

                /** UpgradeInfoEvent resource */
                resource?: (string|null);

                /** UpgradeInfoEvent state */
                state?: (google.container.v1beta1.UpgradeInfoEvent.State|keyof typeof google.container.v1beta1.UpgradeInfoEvent.State|null);

                /** UpgradeInfoEvent standardSupportEndTime */
                standardSupportEndTime?: (google.protobuf.ITimestamp|null);

                /** UpgradeInfoEvent extendedSupportEndTime */
                extendedSupportEndTime?: (google.protobuf.ITimestamp|null);

                /** UpgradeInfoEvent description */
                description?: (string|null);

                /** UpgradeInfoEvent eventType */
                eventType?: (google.container.v1beta1.UpgradeInfoEvent.EventType|keyof typeof google.container.v1beta1.UpgradeInfoEvent.EventType|null);

                /** UpgradeInfoEvent disruptionEvent */
                disruptionEvent?: (google.container.v1beta1.IDisruptionEvent|null);
            }

            /** Represents an UpgradeInfoEvent. */
            class UpgradeInfoEvent implements IUpgradeInfoEvent {

                /**
                 * Constructs a new UpgradeInfoEvent.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IUpgradeInfoEvent);

                /** UpgradeInfoEvent resourceType. */
                public resourceType: (google.container.v1beta1.UpgradeResourceType|keyof typeof google.container.v1beta1.UpgradeResourceType);

                /** UpgradeInfoEvent operation. */
                public operation: string;

                /** UpgradeInfoEvent startTime. */
                public startTime?: (google.protobuf.ITimestamp|null);

                /** UpgradeInfoEvent endTime. */
                public endTime?: (google.protobuf.ITimestamp|null);

                /** UpgradeInfoEvent currentVersion. */
                public currentVersion: string;

                /** UpgradeInfoEvent targetVersion. */
                public targetVersion: string;

                /** UpgradeInfoEvent currentEmulatedVersion. */
                public currentEmulatedVersion: string;

                /** UpgradeInfoEvent targetEmulatedVersion. */
                public targetEmulatedVersion: string;

                /** UpgradeInfoEvent resource. */
                public resource: string;

                /** UpgradeInfoEvent state. */
                public state: (google.container.v1beta1.UpgradeInfoEvent.State|keyof typeof google.container.v1beta1.UpgradeInfoEvent.State);

                /** UpgradeInfoEvent standardSupportEndTime. */
                public standardSupportEndTime?: (google.protobuf.ITimestamp|null);

                /** UpgradeInfoEvent extendedSupportEndTime. */
                public extendedSupportEndTime?: (google.protobuf.ITimestamp|null);

                /** UpgradeInfoEvent description. */
                public description: string;

                /** UpgradeInfoEvent eventType. */
                public eventType: (google.container.v1beta1.UpgradeInfoEvent.EventType|keyof typeof google.container.v1beta1.UpgradeInfoEvent.EventType);

                /** UpgradeInfoEvent disruptionEvent. */
                public disruptionEvent?: (google.container.v1beta1.IDisruptionEvent|null);

                /**
                 * Creates a new UpgradeInfoEvent instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns UpgradeInfoEvent instance
                 */
                public static create(properties?: google.container.v1beta1.IUpgradeInfoEvent): google.container.v1beta1.UpgradeInfoEvent;

                /**
                 * Encodes the specified UpgradeInfoEvent message. Does not implicitly {@link google.container.v1beta1.UpgradeInfoEvent.verify|verify} messages.
                 * @param message UpgradeInfoEvent message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IUpgradeInfoEvent, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified UpgradeInfoEvent message, length delimited. Does not implicitly {@link google.container.v1beta1.UpgradeInfoEvent.verify|verify} messages.
                 * @param message UpgradeInfoEvent message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IUpgradeInfoEvent, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes an UpgradeInfoEvent message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns UpgradeInfoEvent
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.UpgradeInfoEvent;

                /**
                 * Decodes an UpgradeInfoEvent message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns UpgradeInfoEvent
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.UpgradeInfoEvent;

                /**
                 * Verifies an UpgradeInfoEvent message.
                 * @param message Plain 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 UpgradeInfoEvent message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns UpgradeInfoEvent
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.UpgradeInfoEvent;

                /**
                 * Creates a plain object from an UpgradeInfoEvent message. Also converts values to other types if specified.
                 * @param message UpgradeInfoEvent
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.UpgradeInfoEvent, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this UpgradeInfoEvent to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for UpgradeInfoEvent
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace UpgradeInfoEvent {

                /** State enum. */
                enum State {
                    STATE_UNSPECIFIED = 0,
                    SCHEDULED = 1,
                    STARTED = 3,
                    SUCCEEDED = 4,
                    FAILED = 5,
                    CANCELED = 6
                }

                /** EventType enum. */
                enum EventType {
                    EVENT_TYPE_UNSPECIFIED = 0,
                    END_OF_SUPPORT = 1,
                    COS_MILESTONE_VERSION_UPDATE = 2,
                    UPGRADE_LIFECYCLE = 3,
                    DISRUPTION_EVENT = 4
                }
            }

            /** Properties of a DisruptionEvent. */
            interface IDisruptionEvent {

                /** DisruptionEvent disruptionType */
                disruptionType?: (google.container.v1beta1.DisruptionEvent.DisruptionType|keyof typeof google.container.v1beta1.DisruptionEvent.DisruptionType|null);

                /** DisruptionEvent pdbBlockedNode */
                pdbBlockedNode?: (string|null);

                /** DisruptionEvent pdbBlockedPod */
                pdbBlockedPod?: (google.container.v1beta1.DisruptionEvent.IPdbBlockedPod[]|null);

                /** DisruptionEvent pdbViolationTimeout */
                pdbViolationTimeout?: (google.protobuf.IDuration|null);
            }

            /** Represents a DisruptionEvent. */
            class DisruptionEvent implements IDisruptionEvent {

                /**
                 * Constructs a new DisruptionEvent.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IDisruptionEvent);

                /** DisruptionEvent disruptionType. */
                public disruptionType: (google.container.v1beta1.DisruptionEvent.DisruptionType|keyof typeof google.container.v1beta1.DisruptionEvent.DisruptionType);

                /** DisruptionEvent pdbBlockedNode. */
                public pdbBlockedNode: string;

                /** DisruptionEvent pdbBlockedPod. */
                public pdbBlockedPod: google.container.v1beta1.DisruptionEvent.IPdbBlockedPod[];

                /** DisruptionEvent pdbViolationTimeout. */
                public pdbViolationTimeout?: (google.protobuf.IDuration|null);

                /**
                 * Creates a new DisruptionEvent instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns DisruptionEvent instance
                 */
                public static create(properties?: google.container.v1beta1.IDisruptionEvent): google.container.v1beta1.DisruptionEvent;

                /**
                 * Encodes the specified DisruptionEvent message. Does not implicitly {@link google.container.v1beta1.DisruptionEvent.verify|verify} messages.
                 * @param message DisruptionEvent message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IDisruptionEvent, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified DisruptionEvent message, length delimited. Does not implicitly {@link google.container.v1beta1.DisruptionEvent.verify|verify} messages.
                 * @param message DisruptionEvent message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IDisruptionEvent, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a DisruptionEvent message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns DisruptionEvent
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.DisruptionEvent;

                /**
                 * Decodes a DisruptionEvent message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns DisruptionEvent
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.DisruptionEvent;

                /**
                 * Verifies a DisruptionEvent message.
                 * @param message Plain 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 DisruptionEvent message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns DisruptionEvent
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.DisruptionEvent;

                /**
                 * Creates a plain object from a DisruptionEvent message. Also converts values to other types if specified.
                 * @param message DisruptionEvent
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.DisruptionEvent, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this DisruptionEvent to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for DisruptionEvent
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace DisruptionEvent {

                /** DisruptionType enum. */
                enum DisruptionType {
                    DISRUPTION_TYPE_UNSPECIFIED = 0,
                    POD_NOT_ENOUGH_PDB = 1,
                    POD_PDB_VIOLATION = 2
                }

                /** Properties of a PdbBlockedPod. */
                interface IPdbBlockedPod {

                    /** PdbBlockedPod namespace */
                    namespace?: (string|null);

                    /** PdbBlockedPod name */
                    name?: (string|null);
                }

                /** Represents a PdbBlockedPod. */
                class PdbBlockedPod implements IPdbBlockedPod {

                    /**
                     * Constructs a new PdbBlockedPod.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.container.v1beta1.DisruptionEvent.IPdbBlockedPod);

                    /** PdbBlockedPod namespace. */
                    public namespace: string;

                    /** PdbBlockedPod name. */
                    public name: string;

                    /**
                     * Creates a new PdbBlockedPod instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PdbBlockedPod instance
                     */
                    public static create(properties?: google.container.v1beta1.DisruptionEvent.IPdbBlockedPod): google.container.v1beta1.DisruptionEvent.PdbBlockedPod;

                    /**
                     * Encodes the specified PdbBlockedPod message. Does not implicitly {@link google.container.v1beta1.DisruptionEvent.PdbBlockedPod.verify|verify} messages.
                     * @param message PdbBlockedPod message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.container.v1beta1.DisruptionEvent.IPdbBlockedPod, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PdbBlockedPod message, length delimited. Does not implicitly {@link google.container.v1beta1.DisruptionEvent.PdbBlockedPod.verify|verify} messages.
                     * @param message PdbBlockedPod message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.container.v1beta1.DisruptionEvent.IPdbBlockedPod, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PdbBlockedPod message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PdbBlockedPod
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.DisruptionEvent.PdbBlockedPod;

                    /**
                     * Decodes a PdbBlockedPod message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PdbBlockedPod
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.DisruptionEvent.PdbBlockedPod;

                    /**
                     * Verifies a PdbBlockedPod message.
                     * @param message Plain 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 PdbBlockedPod message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PdbBlockedPod
                     */
                    public static fromObject(object: { [k: string]: any }): google.container.v1beta1.DisruptionEvent.PdbBlockedPod;

                    /**
                     * Creates a plain object from a PdbBlockedPod message. Also converts values to other types if specified.
                     * @param message PdbBlockedPod
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.container.v1beta1.DisruptionEvent.PdbBlockedPod, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PdbBlockedPod to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PdbBlockedPod
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }
            }

            /** Properties of an UpgradeAvailableEvent. */
            interface IUpgradeAvailableEvent {

                /** UpgradeAvailableEvent version */
                version?: (string|null);

                /** UpgradeAvailableEvent resourceType */
                resourceType?: (google.container.v1beta1.UpgradeResourceType|keyof typeof google.container.v1beta1.UpgradeResourceType|null);

                /** UpgradeAvailableEvent releaseChannel */
                releaseChannel?: (google.container.v1beta1.IReleaseChannel|null);

                /** UpgradeAvailableEvent resource */
                resource?: (string|null);

                /** UpgradeAvailableEvent windowsVersions */
                windowsVersions?: (google.container.v1beta1.IWindowsVersions|null);
            }

            /** Represents an UpgradeAvailableEvent. */
            class UpgradeAvailableEvent implements IUpgradeAvailableEvent {

                /**
                 * Constructs a new UpgradeAvailableEvent.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IUpgradeAvailableEvent);

                /** UpgradeAvailableEvent version. */
                public version: string;

                /** UpgradeAvailableEvent resourceType. */
                public resourceType: (google.container.v1beta1.UpgradeResourceType|keyof typeof google.container.v1beta1.UpgradeResourceType);

                /** UpgradeAvailableEvent releaseChannel. */
                public releaseChannel?: (google.container.v1beta1.IReleaseChannel|null);

                /** UpgradeAvailableEvent resource. */
                public resource: string;

                /** UpgradeAvailableEvent windowsVersions. */
                public windowsVersions?: (google.container.v1beta1.IWindowsVersions|null);

                /**
                 * Creates a new UpgradeAvailableEvent instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns UpgradeAvailableEvent instance
                 */
                public static create(properties?: google.container.v1beta1.IUpgradeAvailableEvent): google.container.v1beta1.UpgradeAvailableEvent;

                /**
                 * Encodes the specified UpgradeAvailableEvent message. Does not implicitly {@link google.container.v1beta1.UpgradeAvailableEvent.verify|verify} messages.
                 * @param message UpgradeAvailableEvent message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IUpgradeAvailableEvent, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified UpgradeAvailableEvent message, length delimited. Does not implicitly {@link google.container.v1beta1.UpgradeAvailableEvent.verify|verify} messages.
                 * @param message UpgradeAvailableEvent message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IUpgradeAvailableEvent, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes an UpgradeAvailableEvent message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns UpgradeAvailableEvent
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.UpgradeAvailableEvent;

                /**
                 * Decodes an UpgradeAvailableEvent message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns UpgradeAvailableEvent
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.UpgradeAvailableEvent;

                /**
                 * Verifies an UpgradeAvailableEvent message.
                 * @param message Plain 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 UpgradeAvailableEvent message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns UpgradeAvailableEvent
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.UpgradeAvailableEvent;

                /**
                 * Creates a plain object from an UpgradeAvailableEvent message. Also converts values to other types if specified.
                 * @param message UpgradeAvailableEvent
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.UpgradeAvailableEvent, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this UpgradeAvailableEvent to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for UpgradeAvailableEvent
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a SecurityBulletinEvent. */
            interface ISecurityBulletinEvent {

                /** SecurityBulletinEvent resourceTypeAffected */
                resourceTypeAffected?: (string|null);

                /** SecurityBulletinEvent bulletinId */
                bulletinId?: (string|null);

                /** SecurityBulletinEvent cveIds */
                cveIds?: (string[]|null);

                /** SecurityBulletinEvent severity */
                severity?: (string|null);

                /** SecurityBulletinEvent bulletinUri */
                bulletinUri?: (string|null);

                /** SecurityBulletinEvent briefDescription */
                briefDescription?: (string|null);

                /** SecurityBulletinEvent affectedSupportedMinors */
                affectedSupportedMinors?: (string[]|null);

                /** SecurityBulletinEvent patchedVersions */
                patchedVersions?: (string[]|null);

                /** SecurityBulletinEvent suggestedUpgradeTarget */
                suggestedUpgradeTarget?: (string|null);

                /** SecurityBulletinEvent manualStepsRequired */
                manualStepsRequired?: (boolean|null);

                /** SecurityBulletinEvent mitigatedVersions */
                mitigatedVersions?: (string[]|null);
            }

            /** Represents a SecurityBulletinEvent. */
            class SecurityBulletinEvent implements ISecurityBulletinEvent {

                /**
                 * Constructs a new SecurityBulletinEvent.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.ISecurityBulletinEvent);

                /** SecurityBulletinEvent resourceTypeAffected. */
                public resourceTypeAffected: string;

                /** SecurityBulletinEvent bulletinId. */
                public bulletinId: string;

                /** SecurityBulletinEvent cveIds. */
                public cveIds: string[];

                /** SecurityBulletinEvent severity. */
                public severity: string;

                /** SecurityBulletinEvent bulletinUri. */
                public bulletinUri: string;

                /** SecurityBulletinEvent briefDescription. */
                public briefDescription: string;

                /** SecurityBulletinEvent affectedSupportedMinors. */
                public affectedSupportedMinors: string[];

                /** SecurityBulletinEvent patchedVersions. */
                public patchedVersions: string[];

                /** SecurityBulletinEvent suggestedUpgradeTarget. */
                public suggestedUpgradeTarget: string;

                /** SecurityBulletinEvent manualStepsRequired. */
                public manualStepsRequired: boolean;

                /** SecurityBulletinEvent mitigatedVersions. */
                public mitigatedVersions: string[];

                /**
                 * Creates a new SecurityBulletinEvent instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns SecurityBulletinEvent instance
                 */
                public static create(properties?: google.container.v1beta1.ISecurityBulletinEvent): google.container.v1beta1.SecurityBulletinEvent;

                /**
                 * Encodes the specified SecurityBulletinEvent message. Does not implicitly {@link google.container.v1beta1.SecurityBulletinEvent.verify|verify} messages.
                 * @param message SecurityBulletinEvent message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.ISecurityBulletinEvent, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified SecurityBulletinEvent message, length delimited. Does not implicitly {@link google.container.v1beta1.SecurityBulletinEvent.verify|verify} messages.
                 * @param message SecurityBulletinEvent message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.ISecurityBulletinEvent, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a SecurityBulletinEvent message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns SecurityBulletinEvent
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.SecurityBulletinEvent;

                /**
                 * Decodes a SecurityBulletinEvent message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns SecurityBulletinEvent
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.SecurityBulletinEvent;

                /**
                 * Verifies a SecurityBulletinEvent message.
                 * @param message Plain 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 SecurityBulletinEvent message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns SecurityBulletinEvent
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.SecurityBulletinEvent;

                /**
                 * Creates a plain object from a SecurityBulletinEvent message. Also converts values to other types if specified.
                 * @param message SecurityBulletinEvent
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.SecurityBulletinEvent, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this SecurityBulletinEvent to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for SecurityBulletinEvent
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of an IdentityServiceConfig. */
            interface IIdentityServiceConfig {

                /** IdentityServiceConfig enabled */
                enabled?: (boolean|null);
            }

            /** Represents an IdentityServiceConfig. */
            class IdentityServiceConfig implements IIdentityServiceConfig {

                /**
                 * Constructs a new IdentityServiceConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IIdentityServiceConfig);

                /** IdentityServiceConfig enabled. */
                public enabled: boolean;

                /**
                 * Creates a new IdentityServiceConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns IdentityServiceConfig instance
                 */
                public static create(properties?: google.container.v1beta1.IIdentityServiceConfig): google.container.v1beta1.IdentityServiceConfig;

                /**
                 * Encodes the specified IdentityServiceConfig message. Does not implicitly {@link google.container.v1beta1.IdentityServiceConfig.verify|verify} messages.
                 * @param message IdentityServiceConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IIdentityServiceConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified IdentityServiceConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.IdentityServiceConfig.verify|verify} messages.
                 * @param message IdentityServiceConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IIdentityServiceConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes an IdentityServiceConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns IdentityServiceConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.IdentityServiceConfig;

                /**
                 * Decodes an IdentityServiceConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns IdentityServiceConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.IdentityServiceConfig;

                /**
                 * Verifies an IdentityServiceConfig message.
                 * @param message Plain 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 IdentityServiceConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns IdentityServiceConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.IdentityServiceConfig;

                /**
                 * Creates a plain object from an IdentityServiceConfig message. Also converts values to other types if specified.
                 * @param message IdentityServiceConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.IdentityServiceConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this IdentityServiceConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for IdentityServiceConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** NodePoolUpdateStrategy enum. */
            enum NodePoolUpdateStrategy {
                NODE_POOL_UPDATE_STRATEGY_UNSPECIFIED = 0,
                BLUE_GREEN = 2,
                SURGE = 3,
                SHORT_LIVED = 5
            }

            /** Properties of a LoggingConfig. */
            interface ILoggingConfig {

                /** LoggingConfig componentConfig */
                componentConfig?: (google.container.v1beta1.ILoggingComponentConfig|null);
            }

            /** Represents a LoggingConfig. */
            class LoggingConfig implements ILoggingConfig {

                /**
                 * Constructs a new LoggingConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.ILoggingConfig);

                /** LoggingConfig componentConfig. */
                public componentConfig?: (google.container.v1beta1.ILoggingComponentConfig|null);

                /**
                 * Creates a new LoggingConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns LoggingConfig instance
                 */
                public static create(properties?: google.container.v1beta1.ILoggingConfig): google.container.v1beta1.LoggingConfig;

                /**
                 * Encodes the specified LoggingConfig message. Does not implicitly {@link google.container.v1beta1.LoggingConfig.verify|verify} messages.
                 * @param message LoggingConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.ILoggingConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified LoggingConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.LoggingConfig.verify|verify} messages.
                 * @param message LoggingConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.ILoggingConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a LoggingConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns LoggingConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.LoggingConfig;

                /**
                 * Decodes a LoggingConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns LoggingConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.LoggingConfig;

                /**
                 * Verifies a LoggingConfig message.
                 * @param message Plain 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 LoggingConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns LoggingConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.LoggingConfig;

                /**
                 * Creates a plain object from a LoggingConfig message. Also converts values to other types if specified.
                 * @param message LoggingConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.LoggingConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this LoggingConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for LoggingConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a LoggingComponentConfig. */
            interface ILoggingComponentConfig {

                /** LoggingComponentConfig enableComponents */
                enableComponents?: (google.container.v1beta1.LoggingComponentConfig.Component[]|null);
            }

            /** Represents a LoggingComponentConfig. */
            class LoggingComponentConfig implements ILoggingComponentConfig {

                /**
                 * Constructs a new LoggingComponentConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.ILoggingComponentConfig);

                /** LoggingComponentConfig enableComponents. */
                public enableComponents: google.container.v1beta1.LoggingComponentConfig.Component[];

                /**
                 * Creates a new LoggingComponentConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns LoggingComponentConfig instance
                 */
                public static create(properties?: google.container.v1beta1.ILoggingComponentConfig): google.container.v1beta1.LoggingComponentConfig;

                /**
                 * Encodes the specified LoggingComponentConfig message. Does not implicitly {@link google.container.v1beta1.LoggingComponentConfig.verify|verify} messages.
                 * @param message LoggingComponentConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.ILoggingComponentConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified LoggingComponentConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.LoggingComponentConfig.verify|verify} messages.
                 * @param message LoggingComponentConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.ILoggingComponentConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a LoggingComponentConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns LoggingComponentConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.LoggingComponentConfig;

                /**
                 * Decodes a LoggingComponentConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns LoggingComponentConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.LoggingComponentConfig;

                /**
                 * Verifies a LoggingComponentConfig message.
                 * @param message Plain 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 LoggingComponentConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns LoggingComponentConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.LoggingComponentConfig;

                /**
                 * Creates a plain object from a LoggingComponentConfig message. Also converts values to other types if specified.
                 * @param message LoggingComponentConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.LoggingComponentConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this LoggingComponentConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for LoggingComponentConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace LoggingComponentConfig {

                /** Component enum. */
                enum Component {
                    COMPONENT_UNSPECIFIED = 0,
                    SYSTEM_COMPONENTS = 1,
                    WORKLOADS = 2,
                    APISERVER = 3,
                    SCHEDULER = 4,
                    CONTROLLER_MANAGER = 5,
                    KCP_SSHD = 7,
                    KCP_CONNECTION = 8,
                    KCP_HPA = 9
                }
            }

            /** Properties of a RayClusterLoggingConfig. */
            interface IRayClusterLoggingConfig {

                /** RayClusterLoggingConfig enabled */
                enabled?: (boolean|null);
            }

            /** Represents a RayClusterLoggingConfig. */
            class RayClusterLoggingConfig implements IRayClusterLoggingConfig {

                /**
                 * Constructs a new RayClusterLoggingConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IRayClusterLoggingConfig);

                /** RayClusterLoggingConfig enabled. */
                public enabled: boolean;

                /**
                 * Creates a new RayClusterLoggingConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns RayClusterLoggingConfig instance
                 */
                public static create(properties?: google.container.v1beta1.IRayClusterLoggingConfig): google.container.v1beta1.RayClusterLoggingConfig;

                /**
                 * Encodes the specified RayClusterLoggingConfig message. Does not implicitly {@link google.container.v1beta1.RayClusterLoggingConfig.verify|verify} messages.
                 * @param message RayClusterLoggingConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IRayClusterLoggingConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified RayClusterLoggingConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.RayClusterLoggingConfig.verify|verify} messages.
                 * @param message RayClusterLoggingConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IRayClusterLoggingConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a RayClusterLoggingConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns RayClusterLoggingConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.RayClusterLoggingConfig;

                /**
                 * Decodes a RayClusterLoggingConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns RayClusterLoggingConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.RayClusterLoggingConfig;

                /**
                 * Verifies a RayClusterLoggingConfig message.
                 * @param message Plain 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 RayClusterLoggingConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns RayClusterLoggingConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.RayClusterLoggingConfig;

                /**
                 * Creates a plain object from a RayClusterLoggingConfig message. Also converts values to other types if specified.
                 * @param message RayClusterLoggingConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.RayClusterLoggingConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this RayClusterLoggingConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for RayClusterLoggingConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a MonitoringConfig. */
            interface IMonitoringConfig {

                /** MonitoringConfig componentConfig */
                componentConfig?: (google.container.v1beta1.IMonitoringComponentConfig|null);

                /** MonitoringConfig managedPrometheusConfig */
                managedPrometheusConfig?: (google.container.v1beta1.IManagedPrometheusConfig|null);

                /** MonitoringConfig advancedDatapathObservabilityConfig */
                advancedDatapathObservabilityConfig?: (google.container.v1beta1.IAdvancedDatapathObservabilityConfig|null);
            }

            /** Represents a MonitoringConfig. */
            class MonitoringConfig implements IMonitoringConfig {

                /**
                 * Constructs a new MonitoringConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IMonitoringConfig);

                /** MonitoringConfig componentConfig. */
                public componentConfig?: (google.container.v1beta1.IMonitoringComponentConfig|null);

                /** MonitoringConfig managedPrometheusConfig. */
                public managedPrometheusConfig?: (google.container.v1beta1.IManagedPrometheusConfig|null);

                /** MonitoringConfig advancedDatapathObservabilityConfig. */
                public advancedDatapathObservabilityConfig?: (google.container.v1beta1.IAdvancedDatapathObservabilityConfig|null);

                /**
                 * Creates a new MonitoringConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns MonitoringConfig instance
                 */
                public static create(properties?: google.container.v1beta1.IMonitoringConfig): google.container.v1beta1.MonitoringConfig;

                /**
                 * Encodes the specified MonitoringConfig message. Does not implicitly {@link google.container.v1beta1.MonitoringConfig.verify|verify} messages.
                 * @param message MonitoringConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IMonitoringConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified MonitoringConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.MonitoringConfig.verify|verify} messages.
                 * @param message MonitoringConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IMonitoringConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a MonitoringConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns MonitoringConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.MonitoringConfig;

                /**
                 * Decodes a MonitoringConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns MonitoringConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.MonitoringConfig;

                /**
                 * Verifies a MonitoringConfig message.
                 * @param message Plain 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 MonitoringConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns MonitoringConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.MonitoringConfig;

                /**
                 * Creates a plain object from a MonitoringConfig message. Also converts values to other types if specified.
                 * @param message MonitoringConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.MonitoringConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this MonitoringConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for MonitoringConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of an AdvancedDatapathObservabilityConfig. */
            interface IAdvancedDatapathObservabilityConfig {

                /** AdvancedDatapathObservabilityConfig enableMetrics */
                enableMetrics?: (boolean|null);

                /** AdvancedDatapathObservabilityConfig relayMode */
                relayMode?: (google.container.v1beta1.AdvancedDatapathObservabilityConfig.RelayMode|keyof typeof google.container.v1beta1.AdvancedDatapathObservabilityConfig.RelayMode|null);

                /** AdvancedDatapathObservabilityConfig enableRelay */
                enableRelay?: (boolean|null);
            }

            /** Represents an AdvancedDatapathObservabilityConfig. */
            class AdvancedDatapathObservabilityConfig implements IAdvancedDatapathObservabilityConfig {

                /**
                 * Constructs a new AdvancedDatapathObservabilityConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IAdvancedDatapathObservabilityConfig);

                /** AdvancedDatapathObservabilityConfig enableMetrics. */
                public enableMetrics: boolean;

                /** AdvancedDatapathObservabilityConfig relayMode. */
                public relayMode: (google.container.v1beta1.AdvancedDatapathObservabilityConfig.RelayMode|keyof typeof google.container.v1beta1.AdvancedDatapathObservabilityConfig.RelayMode);

                /** AdvancedDatapathObservabilityConfig enableRelay. */
                public enableRelay?: (boolean|null);

                /**
                 * Creates a new AdvancedDatapathObservabilityConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns AdvancedDatapathObservabilityConfig instance
                 */
                public static create(properties?: google.container.v1beta1.IAdvancedDatapathObservabilityConfig): google.container.v1beta1.AdvancedDatapathObservabilityConfig;

                /**
                 * Encodes the specified AdvancedDatapathObservabilityConfig message. Does not implicitly {@link google.container.v1beta1.AdvancedDatapathObservabilityConfig.verify|verify} messages.
                 * @param message AdvancedDatapathObservabilityConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IAdvancedDatapathObservabilityConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified AdvancedDatapathObservabilityConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.AdvancedDatapathObservabilityConfig.verify|verify} messages.
                 * @param message AdvancedDatapathObservabilityConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IAdvancedDatapathObservabilityConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes an AdvancedDatapathObservabilityConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns AdvancedDatapathObservabilityConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.AdvancedDatapathObservabilityConfig;

                /**
                 * Decodes an AdvancedDatapathObservabilityConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns AdvancedDatapathObservabilityConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.AdvancedDatapathObservabilityConfig;

                /**
                 * Verifies an AdvancedDatapathObservabilityConfig message.
                 * @param message Plain 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 AdvancedDatapathObservabilityConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns AdvancedDatapathObservabilityConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.AdvancedDatapathObservabilityConfig;

                /**
                 * Creates a plain object from an AdvancedDatapathObservabilityConfig message. Also converts values to other types if specified.
                 * @param message AdvancedDatapathObservabilityConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.AdvancedDatapathObservabilityConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this AdvancedDatapathObservabilityConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for AdvancedDatapathObservabilityConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace AdvancedDatapathObservabilityConfig {

                /** RelayMode enum. */
                enum RelayMode {
                    RELAY_MODE_UNSPECIFIED = 0,
                    DISABLED = 1,
                    INTERNAL_VPC_LB = 3,
                    EXTERNAL_LB = 4
                }
            }

            /** Properties of a RayClusterMonitoringConfig. */
            interface IRayClusterMonitoringConfig {

                /** RayClusterMonitoringConfig enabled */
                enabled?: (boolean|null);
            }

            /** Represents a RayClusterMonitoringConfig. */
            class RayClusterMonitoringConfig implements IRayClusterMonitoringConfig {

                /**
                 * Constructs a new RayClusterMonitoringConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IRayClusterMonitoringConfig);

                /** RayClusterMonitoringConfig enabled. */
                public enabled: boolean;

                /**
                 * Creates a new RayClusterMonitoringConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns RayClusterMonitoringConfig instance
                 */
                public static create(properties?: google.container.v1beta1.IRayClusterMonitoringConfig): google.container.v1beta1.RayClusterMonitoringConfig;

                /**
                 * Encodes the specified RayClusterMonitoringConfig message. Does not implicitly {@link google.container.v1beta1.RayClusterMonitoringConfig.verify|verify} messages.
                 * @param message RayClusterMonitoringConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IRayClusterMonitoringConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified RayClusterMonitoringConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.RayClusterMonitoringConfig.verify|verify} messages.
                 * @param message RayClusterMonitoringConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IRayClusterMonitoringConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a RayClusterMonitoringConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns RayClusterMonitoringConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.RayClusterMonitoringConfig;

                /**
                 * Decodes a RayClusterMonitoringConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns RayClusterMonitoringConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.RayClusterMonitoringConfig;

                /**
                 * Verifies a RayClusterMonitoringConfig message.
                 * @param message Plain 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 RayClusterMonitoringConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns RayClusterMonitoringConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.RayClusterMonitoringConfig;

                /**
                 * Creates a plain object from a RayClusterMonitoringConfig message. Also converts values to other types if specified.
                 * @param message RayClusterMonitoringConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.RayClusterMonitoringConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this RayClusterMonitoringConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for RayClusterMonitoringConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a NodePoolLoggingConfig. */
            interface INodePoolLoggingConfig {

                /** NodePoolLoggingConfig variantConfig */
                variantConfig?: (google.container.v1beta1.ILoggingVariantConfig|null);
            }

            /** Represents a NodePoolLoggingConfig. */
            class NodePoolLoggingConfig implements INodePoolLoggingConfig {

                /**
                 * Constructs a new NodePoolLoggingConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.INodePoolLoggingConfig);

                /** NodePoolLoggingConfig variantConfig. */
                public variantConfig?: (google.container.v1beta1.ILoggingVariantConfig|null);

                /**
                 * Creates a new NodePoolLoggingConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns NodePoolLoggingConfig instance
                 */
                public static create(properties?: google.container.v1beta1.INodePoolLoggingConfig): google.container.v1beta1.NodePoolLoggingConfig;

                /**
                 * Encodes the specified NodePoolLoggingConfig message. Does not implicitly {@link google.container.v1beta1.NodePoolLoggingConfig.verify|verify} messages.
                 * @param message NodePoolLoggingConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.INodePoolLoggingConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified NodePoolLoggingConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.NodePoolLoggingConfig.verify|verify} messages.
                 * @param message NodePoolLoggingConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.INodePoolLoggingConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a NodePoolLoggingConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns NodePoolLoggingConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.NodePoolLoggingConfig;

                /**
                 * Decodes a NodePoolLoggingConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns NodePoolLoggingConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.NodePoolLoggingConfig;

                /**
                 * Verifies a NodePoolLoggingConfig message.
                 * @param message Plain 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 NodePoolLoggingConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns NodePoolLoggingConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.NodePoolLoggingConfig;

                /**
                 * Creates a plain object from a NodePoolLoggingConfig message. Also converts values to other types if specified.
                 * @param message NodePoolLoggingConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.NodePoolLoggingConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this NodePoolLoggingConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for NodePoolLoggingConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a LoggingVariantConfig. */
            interface ILoggingVariantConfig {

                /** LoggingVariantConfig variant */
                variant?: (google.container.v1beta1.LoggingVariantConfig.Variant|keyof typeof google.container.v1beta1.LoggingVariantConfig.Variant|null);
            }

            /** Represents a LoggingVariantConfig. */
            class LoggingVariantConfig implements ILoggingVariantConfig {

                /**
                 * Constructs a new LoggingVariantConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.ILoggingVariantConfig);

                /** LoggingVariantConfig variant. */
                public variant: (google.container.v1beta1.LoggingVariantConfig.Variant|keyof typeof google.container.v1beta1.LoggingVariantConfig.Variant);

                /**
                 * Creates a new LoggingVariantConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns LoggingVariantConfig instance
                 */
                public static create(properties?: google.container.v1beta1.ILoggingVariantConfig): google.container.v1beta1.LoggingVariantConfig;

                /**
                 * Encodes the specified LoggingVariantConfig message. Does not implicitly {@link google.container.v1beta1.LoggingVariantConfig.verify|verify} messages.
                 * @param message LoggingVariantConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.ILoggingVariantConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified LoggingVariantConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.LoggingVariantConfig.verify|verify} messages.
                 * @param message LoggingVariantConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.ILoggingVariantConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a LoggingVariantConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns LoggingVariantConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.LoggingVariantConfig;

                /**
                 * Decodes a LoggingVariantConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns LoggingVariantConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.LoggingVariantConfig;

                /**
                 * Verifies a LoggingVariantConfig message.
                 * @param message Plain 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 LoggingVariantConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns LoggingVariantConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.LoggingVariantConfig;

                /**
                 * Creates a plain object from a LoggingVariantConfig message. Also converts values to other types if specified.
                 * @param message LoggingVariantConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.LoggingVariantConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this LoggingVariantConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for LoggingVariantConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace LoggingVariantConfig {

                /** Variant enum. */
                enum Variant {
                    VARIANT_UNSPECIFIED = 0,
                    DEFAULT = 1,
                    MAX_THROUGHPUT = 2
                }
            }

            /** Properties of a MonitoringComponentConfig. */
            interface IMonitoringComponentConfig {

                /** MonitoringComponentConfig enableComponents */
                enableComponents?: (google.container.v1beta1.MonitoringComponentConfig.Component[]|null);
            }

            /** Represents a MonitoringComponentConfig. */
            class MonitoringComponentConfig implements IMonitoringComponentConfig {

                /**
                 * Constructs a new MonitoringComponentConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IMonitoringComponentConfig);

                /** MonitoringComponentConfig enableComponents. */
                public enableComponents: google.container.v1beta1.MonitoringComponentConfig.Component[];

                /**
                 * Creates a new MonitoringComponentConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns MonitoringComponentConfig instance
                 */
                public static create(properties?: google.container.v1beta1.IMonitoringComponentConfig): google.container.v1beta1.MonitoringComponentConfig;

                /**
                 * Encodes the specified MonitoringComponentConfig message. Does not implicitly {@link google.container.v1beta1.MonitoringComponentConfig.verify|verify} messages.
                 * @param message MonitoringComponentConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IMonitoringComponentConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified MonitoringComponentConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.MonitoringComponentConfig.verify|verify} messages.
                 * @param message MonitoringComponentConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IMonitoringComponentConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a MonitoringComponentConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns MonitoringComponentConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.MonitoringComponentConfig;

                /**
                 * Decodes a MonitoringComponentConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns MonitoringComponentConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.MonitoringComponentConfig;

                /**
                 * Verifies a MonitoringComponentConfig message.
                 * @param message Plain 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 MonitoringComponentConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns MonitoringComponentConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.MonitoringComponentConfig;

                /**
                 * Creates a plain object from a MonitoringComponentConfig message. Also converts values to other types if specified.
                 * @param message MonitoringComponentConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.MonitoringComponentConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this MonitoringComponentConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for MonitoringComponentConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace MonitoringComponentConfig {

                /** Component enum. */
                enum Component {
                    COMPONENT_UNSPECIFIED = 0,
                    SYSTEM_COMPONENTS = 1,
                    WORKLOADS = 2,
                    APISERVER = 3,
                    SCHEDULER = 4,
                    CONTROLLER_MANAGER = 5,
                    STORAGE = 7,
                    HPA = 8,
                    POD = 9,
                    DAEMONSET = 10,
                    DEPLOYMENT = 11,
                    STATEFULSET = 12,
                    CADVISOR = 13,
                    KUBELET = 14,
                    DCGM = 15,
                    JOBSET = 16
                }
            }

            /** DatapathProvider enum. */
            enum DatapathProvider {
                DATAPATH_PROVIDER_UNSPECIFIED = 0,
                LEGACY_DATAPATH = 1,
                ADVANCED_DATAPATH = 2
            }

            /** Properties of a PodAutoscaling. */
            interface IPodAutoscaling {

                /** PodAutoscaling hpaProfile */
                hpaProfile?: (google.container.v1beta1.PodAutoscaling.HPAProfile|keyof typeof google.container.v1beta1.PodAutoscaling.HPAProfile|null);
            }

            /** Represents a PodAutoscaling. */
            class PodAutoscaling implements IPodAutoscaling {

                /**
                 * Constructs a new PodAutoscaling.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IPodAutoscaling);

                /** PodAutoscaling hpaProfile. */
                public hpaProfile?: (google.container.v1beta1.PodAutoscaling.HPAProfile|keyof typeof google.container.v1beta1.PodAutoscaling.HPAProfile|null);

                /**
                 * Creates a new PodAutoscaling instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns PodAutoscaling instance
                 */
                public static create(properties?: google.container.v1beta1.IPodAutoscaling): google.container.v1beta1.PodAutoscaling;

                /**
                 * Encodes the specified PodAutoscaling message. Does not implicitly {@link google.container.v1beta1.PodAutoscaling.verify|verify} messages.
                 * @param message PodAutoscaling message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IPodAutoscaling, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified PodAutoscaling message, length delimited. Does not implicitly {@link google.container.v1beta1.PodAutoscaling.verify|verify} messages.
                 * @param message PodAutoscaling message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IPodAutoscaling, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a PodAutoscaling message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns PodAutoscaling
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.PodAutoscaling;

                /**
                 * Decodes a PodAutoscaling message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns PodAutoscaling
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.PodAutoscaling;

                /**
                 * Verifies a PodAutoscaling message.
                 * @param message Plain 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 PodAutoscaling message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns PodAutoscaling
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.PodAutoscaling;

                /**
                 * Creates a plain object from a PodAutoscaling message. Also converts values to other types if specified.
                 * @param message PodAutoscaling
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.PodAutoscaling, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this PodAutoscaling to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for PodAutoscaling
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace PodAutoscaling {

                /** HPAProfile enum. */
                enum HPAProfile {
                    HPA_PROFILE_UNSPECIFIED = 0,
                    NONE = 1,
                    PERFORMANCE = 2
                }
            }

            /** Properties of a Fleet. */
            interface IFleet {

                /** Fleet project */
                project?: (string|null);

                /** Fleet membership */
                membership?: (string|null);

                /** Fleet preRegistered */
                preRegistered?: (boolean|null);

                /** Fleet membershipType */
                membershipType?: (google.container.v1beta1.Fleet.MembershipType|keyof typeof google.container.v1beta1.Fleet.MembershipType|null);
            }

            /** Represents a Fleet. */
            class Fleet implements IFleet {

                /**
                 * Constructs a new Fleet.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IFleet);

                /** Fleet project. */
                public project: string;

                /** Fleet membership. */
                public membership: string;

                /** Fleet preRegistered. */
                public preRegistered: boolean;

                /** Fleet membershipType. */
                public membershipType: (google.container.v1beta1.Fleet.MembershipType|keyof typeof google.container.v1beta1.Fleet.MembershipType);

                /**
                 * Creates a new Fleet instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns Fleet instance
                 */
                public static create(properties?: google.container.v1beta1.IFleet): google.container.v1beta1.Fleet;

                /**
                 * Encodes the specified Fleet message. Does not implicitly {@link google.container.v1beta1.Fleet.verify|verify} messages.
                 * @param message Fleet message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IFleet, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified Fleet message, length delimited. Does not implicitly {@link google.container.v1beta1.Fleet.verify|verify} messages.
                 * @param message Fleet message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IFleet, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a Fleet message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns Fleet
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.Fleet;

                /**
                 * Decodes a Fleet message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns Fleet
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.Fleet;

                /**
                 * Verifies a Fleet message.
                 * @param message Plain 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 Fleet message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns Fleet
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.Fleet;

                /**
                 * Creates a plain object from a Fleet message. Also converts values to other types if specified.
                 * @param message Fleet
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.Fleet, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this Fleet to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for Fleet
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace Fleet {

                /** MembershipType enum. */
                enum MembershipType {
                    MEMBERSHIP_TYPE_UNSPECIFIED = 0,
                    LIGHTWEIGHT = 1
                }
            }

            /** StackType enum. */
            enum StackType {
                STACK_TYPE_UNSPECIFIED = 0,
                IPV4 = 1,
                IPV4_IPV6 = 2
            }

            /** Properties of a ControlPlaneEndpointsConfig. */
            interface IControlPlaneEndpointsConfig {

                /** ControlPlaneEndpointsConfig dnsEndpointConfig */
                dnsEndpointConfig?: (google.container.v1beta1.ControlPlaneEndpointsConfig.IDNSEndpointConfig|null);

                /** ControlPlaneEndpointsConfig ipEndpointsConfig */
                ipEndpointsConfig?: (google.container.v1beta1.ControlPlaneEndpointsConfig.IIPEndpointsConfig|null);
            }

            /** Represents a ControlPlaneEndpointsConfig. */
            class ControlPlaneEndpointsConfig implements IControlPlaneEndpointsConfig {

                /**
                 * Constructs a new ControlPlaneEndpointsConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IControlPlaneEndpointsConfig);

                /** ControlPlaneEndpointsConfig dnsEndpointConfig. */
                public dnsEndpointConfig?: (google.container.v1beta1.ControlPlaneEndpointsConfig.IDNSEndpointConfig|null);

                /** ControlPlaneEndpointsConfig ipEndpointsConfig. */
                public ipEndpointsConfig?: (google.container.v1beta1.ControlPlaneEndpointsConfig.IIPEndpointsConfig|null);

                /**
                 * Creates a new ControlPlaneEndpointsConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ControlPlaneEndpointsConfig instance
                 */
                public static create(properties?: google.container.v1beta1.IControlPlaneEndpointsConfig): google.container.v1beta1.ControlPlaneEndpointsConfig;

                /**
                 * Encodes the specified ControlPlaneEndpointsConfig message. Does not implicitly {@link google.container.v1beta1.ControlPlaneEndpointsConfig.verify|verify} messages.
                 * @param message ControlPlaneEndpointsConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IControlPlaneEndpointsConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified ControlPlaneEndpointsConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.ControlPlaneEndpointsConfig.verify|verify} messages.
                 * @param message ControlPlaneEndpointsConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IControlPlaneEndpointsConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a ControlPlaneEndpointsConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ControlPlaneEndpointsConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.ControlPlaneEndpointsConfig;

                /**
                 * Decodes a ControlPlaneEndpointsConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ControlPlaneEndpointsConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.ControlPlaneEndpointsConfig;

                /**
                 * Verifies a ControlPlaneEndpointsConfig message.
                 * @param message Plain 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 ControlPlaneEndpointsConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ControlPlaneEndpointsConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.ControlPlaneEndpointsConfig;

                /**
                 * Creates a plain object from a ControlPlaneEndpointsConfig message. Also converts values to other types if specified.
                 * @param message ControlPlaneEndpointsConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.ControlPlaneEndpointsConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ControlPlaneEndpointsConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for ControlPlaneEndpointsConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace ControlPlaneEndpointsConfig {

                /** Properties of a DNSEndpointConfig. */
                interface IDNSEndpointConfig {

                    /** DNSEndpointConfig endpoint */
                    endpoint?: (string|null);

                    /** DNSEndpointConfig allowExternalTraffic */
                    allowExternalTraffic?: (boolean|null);

                    /** DNSEndpointConfig enableK8sTokensViaDns */
                    enableK8sTokensViaDns?: (boolean|null);

                    /** DNSEndpointConfig enableK8sCertsViaDns */
                    enableK8sCertsViaDns?: (boolean|null);
                }

                /** Represents a DNSEndpointConfig. */
                class DNSEndpointConfig implements IDNSEndpointConfig {

                    /**
                     * Constructs a new DNSEndpointConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.container.v1beta1.ControlPlaneEndpointsConfig.IDNSEndpointConfig);

                    /** DNSEndpointConfig endpoint. */
                    public endpoint: string;

                    /** DNSEndpointConfig allowExternalTraffic. */
                    public allowExternalTraffic?: (boolean|null);

                    /** DNSEndpointConfig enableK8sTokensViaDns. */
                    public enableK8sTokensViaDns?: (boolean|null);

                    /** DNSEndpointConfig enableK8sCertsViaDns. */
                    public enableK8sCertsViaDns?: (boolean|null);

                    /**
                     * Creates a new DNSEndpointConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DNSEndpointConfig instance
                     */
                    public static create(properties?: google.container.v1beta1.ControlPlaneEndpointsConfig.IDNSEndpointConfig): google.container.v1beta1.ControlPlaneEndpointsConfig.DNSEndpointConfig;

                    /**
                     * Encodes the specified DNSEndpointConfig message. Does not implicitly {@link google.container.v1beta1.ControlPlaneEndpointsConfig.DNSEndpointConfig.verify|verify} messages.
                     * @param message DNSEndpointConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.container.v1beta1.ControlPlaneEndpointsConfig.IDNSEndpointConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DNSEndpointConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.ControlPlaneEndpointsConfig.DNSEndpointConfig.verify|verify} messages.
                     * @param message DNSEndpointConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.container.v1beta1.ControlPlaneEndpointsConfig.IDNSEndpointConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DNSEndpointConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DNSEndpointConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.ControlPlaneEndpointsConfig.DNSEndpointConfig;

                    /**
                     * Decodes a DNSEndpointConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DNSEndpointConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.ControlPlaneEndpointsConfig.DNSEndpointConfig;

                    /**
                     * Verifies a DNSEndpointConfig message.
                     * @param message Plain 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 DNSEndpointConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DNSEndpointConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.container.v1beta1.ControlPlaneEndpointsConfig.DNSEndpointConfig;

                    /**
                     * Creates a plain object from a DNSEndpointConfig message. Also converts values to other types if specified.
                     * @param message DNSEndpointConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.container.v1beta1.ControlPlaneEndpointsConfig.DNSEndpointConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DNSEndpointConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DNSEndpointConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a IPEndpointsConfig. */
                interface IIPEndpointsConfig {

                    /** IPEndpointsConfig enabled */
                    enabled?: (boolean|null);

                    /** IPEndpointsConfig enablePublicEndpoint */
                    enablePublicEndpoint?: (boolean|null);

                    /** IPEndpointsConfig globalAccess */
                    globalAccess?: (boolean|null);

                    /** IPEndpointsConfig authorizedNetworksConfig */
                    authorizedNetworksConfig?: (google.container.v1beta1.IMasterAuthorizedNetworksConfig|null);

                    /** IPEndpointsConfig publicEndpoint */
                    publicEndpoint?: (string|null);

                    /** IPEndpointsConfig privateEndpoint */
                    privateEndpoint?: (string|null);

                    /** IPEndpointsConfig privateEndpointSubnetwork */
                    privateEndpointSubnetwork?: (string|null);
                }

                /** Represents a IPEndpointsConfig. */
                class IPEndpointsConfig implements IIPEndpointsConfig {

                    /**
                     * Constructs a new IPEndpointsConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.container.v1beta1.ControlPlaneEndpointsConfig.IIPEndpointsConfig);

                    /** IPEndpointsConfig enabled. */
                    public enabled?: (boolean|null);

                    /** IPEndpointsConfig enablePublicEndpoint. */
                    public enablePublicEndpoint?: (boolean|null);

                    /** IPEndpointsConfig globalAccess. */
                    public globalAccess?: (boolean|null);

                    /** IPEndpointsConfig authorizedNetworksConfig. */
                    public authorizedNetworksConfig?: (google.container.v1beta1.IMasterAuthorizedNetworksConfig|null);

                    /** IPEndpointsConfig publicEndpoint. */
                    public publicEndpoint: string;

                    /** IPEndpointsConfig privateEndpoint. */
                    public privateEndpoint: string;

                    /** IPEndpointsConfig privateEndpointSubnetwork. */
                    public privateEndpointSubnetwork: string;

                    /**
                     * Creates a new IPEndpointsConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns IPEndpointsConfig instance
                     */
                    public static create(properties?: google.container.v1beta1.ControlPlaneEndpointsConfig.IIPEndpointsConfig): google.container.v1beta1.ControlPlaneEndpointsConfig.IPEndpointsConfig;

                    /**
                     * Encodes the specified IPEndpointsConfig message. Does not implicitly {@link google.container.v1beta1.ControlPlaneEndpointsConfig.IPEndpointsConfig.verify|verify} messages.
                     * @param message IPEndpointsConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.container.v1beta1.ControlPlaneEndpointsConfig.IIPEndpointsConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified IPEndpointsConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.ControlPlaneEndpointsConfig.IPEndpointsConfig.verify|verify} messages.
                     * @param message IPEndpointsConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.container.v1beta1.ControlPlaneEndpointsConfig.IIPEndpointsConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a IPEndpointsConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns IPEndpointsConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.ControlPlaneEndpointsConfig.IPEndpointsConfig;

                    /**
                     * Decodes a IPEndpointsConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns IPEndpointsConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.ControlPlaneEndpointsConfig.IPEndpointsConfig;

                    /**
                     * Verifies a IPEndpointsConfig message.
                     * @param message Plain 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 IPEndpointsConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns IPEndpointsConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.container.v1beta1.ControlPlaneEndpointsConfig.IPEndpointsConfig;

                    /**
                     * Creates a plain object from a IPEndpointsConfig message. Also converts values to other types if specified.
                     * @param message IPEndpointsConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.container.v1beta1.ControlPlaneEndpointsConfig.IPEndpointsConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this IPEndpointsConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for IPEndpointsConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }
            }

            /** Properties of a ResourceManagerTags. */
            interface IResourceManagerTags {

                /** ResourceManagerTags tags */
                tags?: ({ [k: string]: string }|null);
            }

            /** Represents a ResourceManagerTags. */
            class ResourceManagerTags implements IResourceManagerTags {

                /**
                 * Constructs a new ResourceManagerTags.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IResourceManagerTags);

                /** ResourceManagerTags tags. */
                public tags: { [k: string]: string };

                /**
                 * Creates a new ResourceManagerTags instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ResourceManagerTags instance
                 */
                public static create(properties?: google.container.v1beta1.IResourceManagerTags): google.container.v1beta1.ResourceManagerTags;

                /**
                 * Encodes the specified ResourceManagerTags message. Does not implicitly {@link google.container.v1beta1.ResourceManagerTags.verify|verify} messages.
                 * @param message ResourceManagerTags message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IResourceManagerTags, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified ResourceManagerTags message, length delimited. Does not implicitly {@link google.container.v1beta1.ResourceManagerTags.verify|verify} messages.
                 * @param message ResourceManagerTags message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IResourceManagerTags, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a ResourceManagerTags message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ResourceManagerTags
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.ResourceManagerTags;

                /**
                 * Decodes a ResourceManagerTags message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ResourceManagerTags
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.ResourceManagerTags;

                /**
                 * Verifies a ResourceManagerTags message.
                 * @param message Plain 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 ResourceManagerTags message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ResourceManagerTags
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.ResourceManagerTags;

                /**
                 * Creates a plain object from a ResourceManagerTags message. Also converts values to other types if specified.
                 * @param message ResourceManagerTags
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.ResourceManagerTags, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ResourceManagerTags to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for ResourceManagerTags
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of an EnterpriseConfig. */
            interface IEnterpriseConfig {

                /** EnterpriseConfig clusterTier */
                clusterTier?: (google.container.v1beta1.EnterpriseConfig.ClusterTier|keyof typeof google.container.v1beta1.EnterpriseConfig.ClusterTier|null);

                /** EnterpriseConfig desiredTier */
                desiredTier?: (google.container.v1beta1.EnterpriseConfig.ClusterTier|keyof typeof google.container.v1beta1.EnterpriseConfig.ClusterTier|null);
            }

            /** Represents an EnterpriseConfig. */
            class EnterpriseConfig implements IEnterpriseConfig {

                /**
                 * Constructs a new EnterpriseConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IEnterpriseConfig);

                /** EnterpriseConfig clusterTier. */
                public clusterTier: (google.container.v1beta1.EnterpriseConfig.ClusterTier|keyof typeof google.container.v1beta1.EnterpriseConfig.ClusterTier);

                /** EnterpriseConfig desiredTier. */
                public desiredTier: (google.container.v1beta1.EnterpriseConfig.ClusterTier|keyof typeof google.container.v1beta1.EnterpriseConfig.ClusterTier);

                /**
                 * Creates a new EnterpriseConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns EnterpriseConfig instance
                 */
                public static create(properties?: google.container.v1beta1.IEnterpriseConfig): google.container.v1beta1.EnterpriseConfig;

                /**
                 * Encodes the specified EnterpriseConfig message. Does not implicitly {@link google.container.v1beta1.EnterpriseConfig.verify|verify} messages.
                 * @param message EnterpriseConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IEnterpriseConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified EnterpriseConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.EnterpriseConfig.verify|verify} messages.
                 * @param message EnterpriseConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IEnterpriseConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes an EnterpriseConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns EnterpriseConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.EnterpriseConfig;

                /**
                 * Decodes an EnterpriseConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns EnterpriseConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.EnterpriseConfig;

                /**
                 * Verifies an EnterpriseConfig message.
                 * @param message Plain 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 EnterpriseConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns EnterpriseConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.EnterpriseConfig;

                /**
                 * Creates a plain object from an EnterpriseConfig message. Also converts values to other types if specified.
                 * @param message EnterpriseConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.EnterpriseConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this EnterpriseConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for EnterpriseConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace EnterpriseConfig {

                /** ClusterTier enum. */
                enum ClusterTier {
                    CLUSTER_TIER_UNSPECIFIED = 0,
                    STANDARD = 1,
                    ENTERPRISE = 2
                }
            }

            /** Properties of a SecretManagerConfig. */
            interface ISecretManagerConfig {

                /** SecretManagerConfig enabled */
                enabled?: (boolean|null);

                /** SecretManagerConfig rotationConfig */
                rotationConfig?: (google.container.v1beta1.SecretManagerConfig.IRotationConfig|null);
            }

            /** Represents a SecretManagerConfig. */
            class SecretManagerConfig implements ISecretManagerConfig {

                /**
                 * Constructs a new SecretManagerConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.ISecretManagerConfig);

                /** SecretManagerConfig enabled. */
                public enabled?: (boolean|null);

                /** SecretManagerConfig rotationConfig. */
                public rotationConfig?: (google.container.v1beta1.SecretManagerConfig.IRotationConfig|null);

                /**
                 * Creates a new SecretManagerConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns SecretManagerConfig instance
                 */
                public static create(properties?: google.container.v1beta1.ISecretManagerConfig): google.container.v1beta1.SecretManagerConfig;

                /**
                 * Encodes the specified SecretManagerConfig message. Does not implicitly {@link google.container.v1beta1.SecretManagerConfig.verify|verify} messages.
                 * @param message SecretManagerConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.ISecretManagerConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified SecretManagerConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.SecretManagerConfig.verify|verify} messages.
                 * @param message SecretManagerConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.ISecretManagerConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a SecretManagerConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns SecretManagerConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.SecretManagerConfig;

                /**
                 * Decodes a SecretManagerConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns SecretManagerConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.SecretManagerConfig;

                /**
                 * Verifies a SecretManagerConfig message.
                 * @param message Plain 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 SecretManagerConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns SecretManagerConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.SecretManagerConfig;

                /**
                 * Creates a plain object from a SecretManagerConfig message. Also converts values to other types if specified.
                 * @param message SecretManagerConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.SecretManagerConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this SecretManagerConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for SecretManagerConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace SecretManagerConfig {

                /** Properties of a RotationConfig. */
                interface IRotationConfig {

                    /** RotationConfig enabled */
                    enabled?: (boolean|null);

                    /** RotationConfig rotationInterval */
                    rotationInterval?: (google.protobuf.IDuration|null);
                }

                /** Represents a RotationConfig. */
                class RotationConfig implements IRotationConfig {

                    /**
                     * Constructs a new RotationConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.container.v1beta1.SecretManagerConfig.IRotationConfig);

                    /** RotationConfig enabled. */
                    public enabled?: (boolean|null);

                    /** RotationConfig rotationInterval. */
                    public rotationInterval?: (google.protobuf.IDuration|null);

                    /**
                     * Creates a new RotationConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RotationConfig instance
                     */
                    public static create(properties?: google.container.v1beta1.SecretManagerConfig.IRotationConfig): google.container.v1beta1.SecretManagerConfig.RotationConfig;

                    /**
                     * Encodes the specified RotationConfig message. Does not implicitly {@link google.container.v1beta1.SecretManagerConfig.RotationConfig.verify|verify} messages.
                     * @param message RotationConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.container.v1beta1.SecretManagerConfig.IRotationConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RotationConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.SecretManagerConfig.RotationConfig.verify|verify} messages.
                     * @param message RotationConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.container.v1beta1.SecretManagerConfig.IRotationConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RotationConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RotationConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.SecretManagerConfig.RotationConfig;

                    /**
                     * Decodes a RotationConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RotationConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.SecretManagerConfig.RotationConfig;

                    /**
                     * Verifies a RotationConfig message.
                     * @param message Plain 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 RotationConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RotationConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.container.v1beta1.SecretManagerConfig.RotationConfig;

                    /**
                     * Creates a plain object from a RotationConfig message. Also converts values to other types if specified.
                     * @param message RotationConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.container.v1beta1.SecretManagerConfig.RotationConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RotationConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RotationConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }
            }

            /** Properties of a BootDisk. */
            interface IBootDisk {

                /** BootDisk diskType */
                diskType?: (string|null);

                /** BootDisk sizeGb */
                sizeGb?: (number|Long|string|null);

                /** BootDisk provisionedIops */
                provisionedIops?: (number|Long|string|null);

                /** BootDisk provisionedThroughput */
                provisionedThroughput?: (number|Long|string|null);
            }

            /** Represents a BootDisk. */
            class BootDisk implements IBootDisk {

                /**
                 * Constructs a new BootDisk.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IBootDisk);

                /** BootDisk diskType. */
                public diskType: string;

                /** BootDisk sizeGb. */
                public sizeGb: (number|Long|string);

                /** BootDisk provisionedIops. */
                public provisionedIops: (number|Long|string);

                /** BootDisk provisionedThroughput. */
                public provisionedThroughput: (number|Long|string);

                /**
                 * Creates a new BootDisk instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns BootDisk instance
                 */
                public static create(properties?: google.container.v1beta1.IBootDisk): google.container.v1beta1.BootDisk;

                /**
                 * Encodes the specified BootDisk message. Does not implicitly {@link google.container.v1beta1.BootDisk.verify|verify} messages.
                 * @param message BootDisk message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IBootDisk, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified BootDisk message, length delimited. Does not implicitly {@link google.container.v1beta1.BootDisk.verify|verify} messages.
                 * @param message BootDisk message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IBootDisk, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a BootDisk message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns BootDisk
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.BootDisk;

                /**
                 * Decodes a BootDisk message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns BootDisk
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.BootDisk;

                /**
                 * Verifies a BootDisk message.
                 * @param message Plain 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 BootDisk message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns BootDisk
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.BootDisk;

                /**
                 * Creates a plain object from a BootDisk message. Also converts values to other types if specified.
                 * @param message BootDisk
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.BootDisk, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this BootDisk to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for BootDisk
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a SecondaryBootDisk. */
            interface ISecondaryBootDisk {

                /** SecondaryBootDisk mode */
                mode?: (google.container.v1beta1.SecondaryBootDisk.Mode|keyof typeof google.container.v1beta1.SecondaryBootDisk.Mode|null);

                /** SecondaryBootDisk diskImage */
                diskImage?: (string|null);
            }

            /** Represents a SecondaryBootDisk. */
            class SecondaryBootDisk implements ISecondaryBootDisk {

                /**
                 * Constructs a new SecondaryBootDisk.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.ISecondaryBootDisk);

                /** SecondaryBootDisk mode. */
                public mode: (google.container.v1beta1.SecondaryBootDisk.Mode|keyof typeof google.container.v1beta1.SecondaryBootDisk.Mode);

                /** SecondaryBootDisk diskImage. */
                public diskImage: string;

                /**
                 * Creates a new SecondaryBootDisk instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns SecondaryBootDisk instance
                 */
                public static create(properties?: google.container.v1beta1.ISecondaryBootDisk): google.container.v1beta1.SecondaryBootDisk;

                /**
                 * Encodes the specified SecondaryBootDisk message. Does not implicitly {@link google.container.v1beta1.SecondaryBootDisk.verify|verify} messages.
                 * @param message SecondaryBootDisk message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.ISecondaryBootDisk, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified SecondaryBootDisk message, length delimited. Does not implicitly {@link google.container.v1beta1.SecondaryBootDisk.verify|verify} messages.
                 * @param message SecondaryBootDisk message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.ISecondaryBootDisk, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a SecondaryBootDisk message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns SecondaryBootDisk
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.SecondaryBootDisk;

                /**
                 * Decodes a SecondaryBootDisk message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns SecondaryBootDisk
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.SecondaryBootDisk;

                /**
                 * Verifies a SecondaryBootDisk message.
                 * @param message Plain 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 SecondaryBootDisk message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns SecondaryBootDisk
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.SecondaryBootDisk;

                /**
                 * Creates a plain object from a SecondaryBootDisk message. Also converts values to other types if specified.
                 * @param message SecondaryBootDisk
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.SecondaryBootDisk, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this SecondaryBootDisk to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for SecondaryBootDisk
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace SecondaryBootDisk {

                /** Mode enum. */
                enum Mode {
                    MODE_UNSPECIFIED = 0,
                    CONTAINER_IMAGE_CACHE = 1
                }
            }

            /** InTransitEncryptionConfig enum. */
            enum InTransitEncryptionConfig {
                IN_TRANSIT_ENCRYPTION_CONFIG_UNSPECIFIED = 0,
                IN_TRANSIT_ENCRYPTION_DISABLED = 1,
                IN_TRANSIT_ENCRYPTION_INTER_NODE_TRANSPARENT = 2
            }

            /** Properties of a SecondaryBootDiskUpdateStrategy. */
            interface ISecondaryBootDiskUpdateStrategy {
            }

            /** Represents a SecondaryBootDiskUpdateStrategy. */
            class SecondaryBootDiskUpdateStrategy implements ISecondaryBootDiskUpdateStrategy {

                /**
                 * Constructs a new SecondaryBootDiskUpdateStrategy.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.ISecondaryBootDiskUpdateStrategy);

                /**
                 * Creates a new SecondaryBootDiskUpdateStrategy instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns SecondaryBootDiskUpdateStrategy instance
                 */
                public static create(properties?: google.container.v1beta1.ISecondaryBootDiskUpdateStrategy): google.container.v1beta1.SecondaryBootDiskUpdateStrategy;

                /**
                 * Encodes the specified SecondaryBootDiskUpdateStrategy message. Does not implicitly {@link google.container.v1beta1.SecondaryBootDiskUpdateStrategy.verify|verify} messages.
                 * @param message SecondaryBootDiskUpdateStrategy message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.ISecondaryBootDiskUpdateStrategy, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified SecondaryBootDiskUpdateStrategy message, length delimited. Does not implicitly {@link google.container.v1beta1.SecondaryBootDiskUpdateStrategy.verify|verify} messages.
                 * @param message SecondaryBootDiskUpdateStrategy message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.ISecondaryBootDiskUpdateStrategy, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a SecondaryBootDiskUpdateStrategy message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns SecondaryBootDiskUpdateStrategy
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.SecondaryBootDiskUpdateStrategy;

                /**
                 * Decodes a SecondaryBootDiskUpdateStrategy message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns SecondaryBootDiskUpdateStrategy
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.SecondaryBootDiskUpdateStrategy;

                /**
                 * Verifies a SecondaryBootDiskUpdateStrategy message.
                 * @param message Plain 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 SecondaryBootDiskUpdateStrategy message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns SecondaryBootDiskUpdateStrategy
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.SecondaryBootDiskUpdateStrategy;

                /**
                 * Creates a plain object from a SecondaryBootDiskUpdateStrategy message. Also converts values to other types if specified.
                 * @param message SecondaryBootDiskUpdateStrategy
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.SecondaryBootDiskUpdateStrategy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this SecondaryBootDiskUpdateStrategy to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for SecondaryBootDiskUpdateStrategy
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a FetchClusterUpgradeInfoRequest. */
            interface IFetchClusterUpgradeInfoRequest {

                /** FetchClusterUpgradeInfoRequest name */
                name?: (string|null);

                /** FetchClusterUpgradeInfoRequest version */
                version?: (string|null);
            }

            /** Represents a FetchClusterUpgradeInfoRequest. */
            class FetchClusterUpgradeInfoRequest implements IFetchClusterUpgradeInfoRequest {

                /**
                 * Constructs a new FetchClusterUpgradeInfoRequest.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IFetchClusterUpgradeInfoRequest);

                /** FetchClusterUpgradeInfoRequest name. */
                public name: string;

                /** FetchClusterUpgradeInfoRequest version. */
                public version: string;

                /**
                 * Creates a new FetchClusterUpgradeInfoRequest instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns FetchClusterUpgradeInfoRequest instance
                 */
                public static create(properties?: google.container.v1beta1.IFetchClusterUpgradeInfoRequest): google.container.v1beta1.FetchClusterUpgradeInfoRequest;

                /**
                 * Encodes the specified FetchClusterUpgradeInfoRequest message. Does not implicitly {@link google.container.v1beta1.FetchClusterUpgradeInfoRequest.verify|verify} messages.
                 * @param message FetchClusterUpgradeInfoRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IFetchClusterUpgradeInfoRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified FetchClusterUpgradeInfoRequest message, length delimited. Does not implicitly {@link google.container.v1beta1.FetchClusterUpgradeInfoRequest.verify|verify} messages.
                 * @param message FetchClusterUpgradeInfoRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IFetchClusterUpgradeInfoRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a FetchClusterUpgradeInfoRequest message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns FetchClusterUpgradeInfoRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.FetchClusterUpgradeInfoRequest;

                /**
                 * Decodes a FetchClusterUpgradeInfoRequest message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns FetchClusterUpgradeInfoRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.FetchClusterUpgradeInfoRequest;

                /**
                 * Verifies a FetchClusterUpgradeInfoRequest message.
                 * @param message Plain 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 FetchClusterUpgradeInfoRequest message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns FetchClusterUpgradeInfoRequest
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.FetchClusterUpgradeInfoRequest;

                /**
                 * Creates a plain object from a FetchClusterUpgradeInfoRequest message. Also converts values to other types if specified.
                 * @param message FetchClusterUpgradeInfoRequest
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.FetchClusterUpgradeInfoRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this FetchClusterUpgradeInfoRequest to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for FetchClusterUpgradeInfoRequest
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a ClusterUpgradeInfo. */
            interface IClusterUpgradeInfo {

                /** ClusterUpgradeInfo minorTargetVersion */
                minorTargetVersion?: (string|null);

                /** ClusterUpgradeInfo patchTargetVersion */
                patchTargetVersion?: (string|null);

                /** ClusterUpgradeInfo autoUpgradeStatus */
                autoUpgradeStatus?: (google.container.v1beta1.ClusterUpgradeInfo.AutoUpgradeStatus[]|null);

                /** ClusterUpgradeInfo pausedReason */
                pausedReason?: (google.container.v1beta1.ClusterUpgradeInfo.AutoUpgradePausedReason[]|null);

                /** ClusterUpgradeInfo upgradeDetails */
                upgradeDetails?: (google.container.v1beta1.IUpgradeDetails[]|null);

                /** ClusterUpgradeInfo endOfStandardSupportTimestamp */
                endOfStandardSupportTimestamp?: (string|null);

                /** ClusterUpgradeInfo endOfExtendedSupportTimestamp */
                endOfExtendedSupportTimestamp?: (string|null);

                /** ClusterUpgradeInfo rollbackSafeUpgradeStatus */
                rollbackSafeUpgradeStatus?: (google.container.v1beta1.IRollbackSafeUpgradeStatus|null);
            }

            /** Represents a ClusterUpgradeInfo. */
            class ClusterUpgradeInfo implements IClusterUpgradeInfo {

                /**
                 * Constructs a new ClusterUpgradeInfo.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IClusterUpgradeInfo);

                /** ClusterUpgradeInfo minorTargetVersion. */
                public minorTargetVersion?: (string|null);

                /** ClusterUpgradeInfo patchTargetVersion. */
                public patchTargetVersion?: (string|null);

                /** ClusterUpgradeInfo autoUpgradeStatus. */
                public autoUpgradeStatus: google.container.v1beta1.ClusterUpgradeInfo.AutoUpgradeStatus[];

                /** ClusterUpgradeInfo pausedReason. */
                public pausedReason: google.container.v1beta1.ClusterUpgradeInfo.AutoUpgradePausedReason[];

                /** ClusterUpgradeInfo upgradeDetails. */
                public upgradeDetails: google.container.v1beta1.IUpgradeDetails[];

                /** ClusterUpgradeInfo endOfStandardSupportTimestamp. */
                public endOfStandardSupportTimestamp?: (string|null);

                /** ClusterUpgradeInfo endOfExtendedSupportTimestamp. */
                public endOfExtendedSupportTimestamp?: (string|null);

                /** ClusterUpgradeInfo rollbackSafeUpgradeStatus. */
                public rollbackSafeUpgradeStatus?: (google.container.v1beta1.IRollbackSafeUpgradeStatus|null);

                /**
                 * Creates a new ClusterUpgradeInfo instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ClusterUpgradeInfo instance
                 */
                public static create(properties?: google.container.v1beta1.IClusterUpgradeInfo): google.container.v1beta1.ClusterUpgradeInfo;

                /**
                 * Encodes the specified ClusterUpgradeInfo message. Does not implicitly {@link google.container.v1beta1.ClusterUpgradeInfo.verify|verify} messages.
                 * @param message ClusterUpgradeInfo message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IClusterUpgradeInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified ClusterUpgradeInfo message, length delimited. Does not implicitly {@link google.container.v1beta1.ClusterUpgradeInfo.verify|verify} messages.
                 * @param message ClusterUpgradeInfo message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IClusterUpgradeInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a ClusterUpgradeInfo message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ClusterUpgradeInfo
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.ClusterUpgradeInfo;

                /**
                 * Decodes a ClusterUpgradeInfo message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ClusterUpgradeInfo
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.ClusterUpgradeInfo;

                /**
                 * Verifies a ClusterUpgradeInfo message.
                 * @param message Plain 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 ClusterUpgradeInfo message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ClusterUpgradeInfo
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.ClusterUpgradeInfo;

                /**
                 * Creates a plain object from a ClusterUpgradeInfo message. Also converts values to other types if specified.
                 * @param message ClusterUpgradeInfo
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.ClusterUpgradeInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ClusterUpgradeInfo to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for ClusterUpgradeInfo
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace ClusterUpgradeInfo {

                /** AutoUpgradeStatus enum. */
                enum AutoUpgradeStatus {
                    UNKNOWN = 0,
                    ACTIVE = 1,
                    MINOR_UPGRADE_PAUSED = 4,
                    UPGRADE_PAUSED = 5
                }

                /** AutoUpgradePausedReason enum. */
                enum AutoUpgradePausedReason {
                    AUTO_UPGRADE_PAUSED_REASON_UNSPECIFIED = 0,
                    MAINTENANCE_WINDOW = 1,
                    MAINTENANCE_EXCLUSION_NO_UPGRADES = 5,
                    MAINTENANCE_EXCLUSION_NO_MINOR_UPGRADES = 6,
                    CLUSTER_DISRUPTION_BUDGET = 4,
                    CLUSTER_DISRUPTION_BUDGET_MINOR_UPGRADE = 7,
                    SYSTEM_CONFIG = 8
                }
            }

            /** Properties of a RollbackSafeUpgradeStatus. */
            interface IRollbackSafeUpgradeStatus {

                /** RollbackSafeUpgradeStatus mode */
                mode?: (google.container.v1beta1.RollbackSafeUpgradeStatus.Mode|keyof typeof google.container.v1beta1.RollbackSafeUpgradeStatus.Mode|null);

                /** RollbackSafeUpgradeStatus controlPlaneUpgradeRollbackEndTime */
                controlPlaneUpgradeRollbackEndTime?: (google.protobuf.ITimestamp|null);

                /** RollbackSafeUpgradeStatus previousVersion */
                previousVersion?: (string|null);
            }

            /** Represents a RollbackSafeUpgradeStatus. */
            class RollbackSafeUpgradeStatus implements IRollbackSafeUpgradeStatus {

                /**
                 * Constructs a new RollbackSafeUpgradeStatus.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IRollbackSafeUpgradeStatus);

                /** RollbackSafeUpgradeStatus mode. */
                public mode: (google.container.v1beta1.RollbackSafeUpgradeStatus.Mode|keyof typeof google.container.v1beta1.RollbackSafeUpgradeStatus.Mode);

                /** RollbackSafeUpgradeStatus controlPlaneUpgradeRollbackEndTime. */
                public controlPlaneUpgradeRollbackEndTime?: (google.protobuf.ITimestamp|null);

                /** RollbackSafeUpgradeStatus previousVersion. */
                public previousVersion: string;

                /**
                 * Creates a new RollbackSafeUpgradeStatus instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns RollbackSafeUpgradeStatus instance
                 */
                public static create(properties?: google.container.v1beta1.IRollbackSafeUpgradeStatus): google.container.v1beta1.RollbackSafeUpgradeStatus;

                /**
                 * Encodes the specified RollbackSafeUpgradeStatus message. Does not implicitly {@link google.container.v1beta1.RollbackSafeUpgradeStatus.verify|verify} messages.
                 * @param message RollbackSafeUpgradeStatus message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IRollbackSafeUpgradeStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified RollbackSafeUpgradeStatus message, length delimited. Does not implicitly {@link google.container.v1beta1.RollbackSafeUpgradeStatus.verify|verify} messages.
                 * @param message RollbackSafeUpgradeStatus message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IRollbackSafeUpgradeStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a RollbackSafeUpgradeStatus message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns RollbackSafeUpgradeStatus
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.RollbackSafeUpgradeStatus;

                /**
                 * Decodes a RollbackSafeUpgradeStatus message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns RollbackSafeUpgradeStatus
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.RollbackSafeUpgradeStatus;

                /**
                 * Verifies a RollbackSafeUpgradeStatus message.
                 * @param message Plain 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 RollbackSafeUpgradeStatus message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns RollbackSafeUpgradeStatus
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.RollbackSafeUpgradeStatus;

                /**
                 * Creates a plain object from a RollbackSafeUpgradeStatus message. Also converts values to other types if specified.
                 * @param message RollbackSafeUpgradeStatus
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.RollbackSafeUpgradeStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this RollbackSafeUpgradeStatus to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for RollbackSafeUpgradeStatus
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace RollbackSafeUpgradeStatus {

                /** Mode enum. */
                enum Mode {
                    MODE_UNSPECIFIED = 0,
                    KCP_MINOR_UPGRADE_ROLLBACK_SAFE_MODE = 1
                }
            }

            /** Properties of an UpgradeDetails. */
            interface IUpgradeDetails {

                /** UpgradeDetails state */
                state?: (google.container.v1beta1.UpgradeDetails.State|keyof typeof google.container.v1beta1.UpgradeDetails.State|null);

                /** UpgradeDetails startTime */
                startTime?: (google.protobuf.ITimestamp|null);

                /** UpgradeDetails endTime */
                endTime?: (google.protobuf.ITimestamp|null);

                /** UpgradeDetails initialVersion */
                initialVersion?: (string|null);

                /** UpgradeDetails targetVersion */
                targetVersion?: (string|null);

                /** UpgradeDetails startType */
                startType?: (google.container.v1beta1.UpgradeDetails.StartType|keyof typeof google.container.v1beta1.UpgradeDetails.StartType|null);

                /** UpgradeDetails initialEmulatedVersion */
                initialEmulatedVersion?: (string|null);

                /** UpgradeDetails targetEmulatedVersion */
                targetEmulatedVersion?: (string|null);
            }

            /** Represents an UpgradeDetails. */
            class UpgradeDetails implements IUpgradeDetails {

                /**
                 * Constructs a new UpgradeDetails.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IUpgradeDetails);

                /** UpgradeDetails state. */
                public state: (google.container.v1beta1.UpgradeDetails.State|keyof typeof google.container.v1beta1.UpgradeDetails.State);

                /** UpgradeDetails startTime. */
                public startTime?: (google.protobuf.ITimestamp|null);

                /** UpgradeDetails endTime. */
                public endTime?: (google.protobuf.ITimestamp|null);

                /** UpgradeDetails initialVersion. */
                public initialVersion: string;

                /** UpgradeDetails targetVersion. */
                public targetVersion: string;

                /** UpgradeDetails startType. */
                public startType: (google.container.v1beta1.UpgradeDetails.StartType|keyof typeof google.container.v1beta1.UpgradeDetails.StartType);

                /** UpgradeDetails initialEmulatedVersion. */
                public initialEmulatedVersion: string;

                /** UpgradeDetails targetEmulatedVersion. */
                public targetEmulatedVersion: string;

                /**
                 * Creates a new UpgradeDetails instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns UpgradeDetails instance
                 */
                public static create(properties?: google.container.v1beta1.IUpgradeDetails): google.container.v1beta1.UpgradeDetails;

                /**
                 * Encodes the specified UpgradeDetails message. Does not implicitly {@link google.container.v1beta1.UpgradeDetails.verify|verify} messages.
                 * @param message UpgradeDetails message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IUpgradeDetails, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified UpgradeDetails message, length delimited. Does not implicitly {@link google.container.v1beta1.UpgradeDetails.verify|verify} messages.
                 * @param message UpgradeDetails message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IUpgradeDetails, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes an UpgradeDetails message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns UpgradeDetails
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.UpgradeDetails;

                /**
                 * Decodes an UpgradeDetails message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns UpgradeDetails
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.UpgradeDetails;

                /**
                 * Verifies an UpgradeDetails message.
                 * @param message Plain 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 UpgradeDetails message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns UpgradeDetails
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.UpgradeDetails;

                /**
                 * Creates a plain object from an UpgradeDetails message. Also converts values to other types if specified.
                 * @param message UpgradeDetails
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.UpgradeDetails, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this UpgradeDetails to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for UpgradeDetails
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace UpgradeDetails {

                /** State enum. */
                enum State {
                    UNKNOWN = 0,
                    FAILED = 1,
                    SUCCEEDED = 2,
                    CANCELED = 3,
                    RUNNING = 4
                }

                /** StartType enum. */
                enum StartType {
                    START_TYPE_UNSPECIFIED = 0,
                    AUTOMATIC = 1,
                    MANUAL = 2
                }
            }

            /** Properties of a FetchNodePoolUpgradeInfoRequest. */
            interface IFetchNodePoolUpgradeInfoRequest {

                /** FetchNodePoolUpgradeInfoRequest name */
                name?: (string|null);

                /** FetchNodePoolUpgradeInfoRequest version */
                version?: (string|null);
            }

            /** Represents a FetchNodePoolUpgradeInfoRequest. */
            class FetchNodePoolUpgradeInfoRequest implements IFetchNodePoolUpgradeInfoRequest {

                /**
                 * Constructs a new FetchNodePoolUpgradeInfoRequest.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IFetchNodePoolUpgradeInfoRequest);

                /** FetchNodePoolUpgradeInfoRequest name. */
                public name: string;

                /** FetchNodePoolUpgradeInfoRequest version. */
                public version: string;

                /**
                 * Creates a new FetchNodePoolUpgradeInfoRequest instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns FetchNodePoolUpgradeInfoRequest instance
                 */
                public static create(properties?: google.container.v1beta1.IFetchNodePoolUpgradeInfoRequest): google.container.v1beta1.FetchNodePoolUpgradeInfoRequest;

                /**
                 * Encodes the specified FetchNodePoolUpgradeInfoRequest message. Does not implicitly {@link google.container.v1beta1.FetchNodePoolUpgradeInfoRequest.verify|verify} messages.
                 * @param message FetchNodePoolUpgradeInfoRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IFetchNodePoolUpgradeInfoRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified FetchNodePoolUpgradeInfoRequest message, length delimited. Does not implicitly {@link google.container.v1beta1.FetchNodePoolUpgradeInfoRequest.verify|verify} messages.
                 * @param message FetchNodePoolUpgradeInfoRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IFetchNodePoolUpgradeInfoRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a FetchNodePoolUpgradeInfoRequest message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns FetchNodePoolUpgradeInfoRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.FetchNodePoolUpgradeInfoRequest;

                /**
                 * Decodes a FetchNodePoolUpgradeInfoRequest message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns FetchNodePoolUpgradeInfoRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.FetchNodePoolUpgradeInfoRequest;

                /**
                 * Verifies a FetchNodePoolUpgradeInfoRequest message.
                 * @param message Plain 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 FetchNodePoolUpgradeInfoRequest message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns FetchNodePoolUpgradeInfoRequest
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.FetchNodePoolUpgradeInfoRequest;

                /**
                 * Creates a plain object from a FetchNodePoolUpgradeInfoRequest message. Also converts values to other types if specified.
                 * @param message FetchNodePoolUpgradeInfoRequest
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.FetchNodePoolUpgradeInfoRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this FetchNodePoolUpgradeInfoRequest to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for FetchNodePoolUpgradeInfoRequest
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a NodePoolUpgradeInfo. */
            interface INodePoolUpgradeInfo {

                /** NodePoolUpgradeInfo minorTargetVersion */
                minorTargetVersion?: (string|null);

                /** NodePoolUpgradeInfo patchTargetVersion */
                patchTargetVersion?: (string|null);

                /** NodePoolUpgradeInfo autoUpgradeStatus */
                autoUpgradeStatus?: (google.container.v1beta1.NodePoolUpgradeInfo.AutoUpgradeStatus[]|null);

                /** NodePoolUpgradeInfo pausedReason */
                pausedReason?: (google.container.v1beta1.NodePoolUpgradeInfo.AutoUpgradePausedReason[]|null);

                /** NodePoolUpgradeInfo upgradeDetails */
                upgradeDetails?: (google.container.v1beta1.IUpgradeDetails[]|null);

                /** NodePoolUpgradeInfo endOfStandardSupportTimestamp */
                endOfStandardSupportTimestamp?: (string|null);

                /** NodePoolUpgradeInfo endOfExtendedSupportTimestamp */
                endOfExtendedSupportTimestamp?: (string|null);
            }

            /** Represents a NodePoolUpgradeInfo. */
            class NodePoolUpgradeInfo implements INodePoolUpgradeInfo {

                /**
                 * Constructs a new NodePoolUpgradeInfo.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.INodePoolUpgradeInfo);

                /** NodePoolUpgradeInfo minorTargetVersion. */
                public minorTargetVersion?: (string|null);

                /** NodePoolUpgradeInfo patchTargetVersion. */
                public patchTargetVersion?: (string|null);

                /** NodePoolUpgradeInfo autoUpgradeStatus. */
                public autoUpgradeStatus: google.container.v1beta1.NodePoolUpgradeInfo.AutoUpgradeStatus[];

                /** NodePoolUpgradeInfo pausedReason. */
                public pausedReason: google.container.v1beta1.NodePoolUpgradeInfo.AutoUpgradePausedReason[];

                /** NodePoolUpgradeInfo upgradeDetails. */
                public upgradeDetails: google.container.v1beta1.IUpgradeDetails[];

                /** NodePoolUpgradeInfo endOfStandardSupportTimestamp. */
                public endOfStandardSupportTimestamp?: (string|null);

                /** NodePoolUpgradeInfo endOfExtendedSupportTimestamp. */
                public endOfExtendedSupportTimestamp?: (string|null);

                /**
                 * Creates a new NodePoolUpgradeInfo instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns NodePoolUpgradeInfo instance
                 */
                public static create(properties?: google.container.v1beta1.INodePoolUpgradeInfo): google.container.v1beta1.NodePoolUpgradeInfo;

                /**
                 * Encodes the specified NodePoolUpgradeInfo message. Does not implicitly {@link google.container.v1beta1.NodePoolUpgradeInfo.verify|verify} messages.
                 * @param message NodePoolUpgradeInfo message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.INodePoolUpgradeInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified NodePoolUpgradeInfo message, length delimited. Does not implicitly {@link google.container.v1beta1.NodePoolUpgradeInfo.verify|verify} messages.
                 * @param message NodePoolUpgradeInfo message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.INodePoolUpgradeInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a NodePoolUpgradeInfo message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns NodePoolUpgradeInfo
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.NodePoolUpgradeInfo;

                /**
                 * Decodes a NodePoolUpgradeInfo message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns NodePoolUpgradeInfo
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.NodePoolUpgradeInfo;

                /**
                 * Verifies a NodePoolUpgradeInfo message.
                 * @param message Plain 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 NodePoolUpgradeInfo message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns NodePoolUpgradeInfo
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.NodePoolUpgradeInfo;

                /**
                 * Creates a plain object from a NodePoolUpgradeInfo message. Also converts values to other types if specified.
                 * @param message NodePoolUpgradeInfo
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.NodePoolUpgradeInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this NodePoolUpgradeInfo to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for NodePoolUpgradeInfo
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace NodePoolUpgradeInfo {

                /** AutoUpgradeStatus enum. */
                enum AutoUpgradeStatus {
                    UNKNOWN = 0,
                    ACTIVE = 1,
                    MINOR_UPGRADE_PAUSED = 2,
                    UPGRADE_PAUSED = 3
                }

                /** AutoUpgradePausedReason enum. */
                enum AutoUpgradePausedReason {
                    AUTO_UPGRADE_PAUSED_REASON_UNSPECIFIED = 0,
                    MAINTENANCE_WINDOW = 1,
                    MAINTENANCE_EXCLUSION_NO_UPGRADES = 2,
                    MAINTENANCE_EXCLUSION_NO_MINOR_UPGRADES = 3,
                    SYSTEM_CONFIG = 4
                }
            }

            /** Properties of a ScheduleUpgradeConfig. */
            interface IScheduleUpgradeConfig {

                /** ScheduleUpgradeConfig enabled */
                enabled?: (boolean|null);
            }

            /** Represents a ScheduleUpgradeConfig. */
            class ScheduleUpgradeConfig implements IScheduleUpgradeConfig {

                /**
                 * Constructs a new ScheduleUpgradeConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IScheduleUpgradeConfig);

                /** ScheduleUpgradeConfig enabled. */
                public enabled: boolean;

                /**
                 * Creates a new ScheduleUpgradeConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ScheduleUpgradeConfig instance
                 */
                public static create(properties?: google.container.v1beta1.IScheduleUpgradeConfig): google.container.v1beta1.ScheduleUpgradeConfig;

                /**
                 * Encodes the specified ScheduleUpgradeConfig message. Does not implicitly {@link google.container.v1beta1.ScheduleUpgradeConfig.verify|verify} messages.
                 * @param message ScheduleUpgradeConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IScheduleUpgradeConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified ScheduleUpgradeConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.ScheduleUpgradeConfig.verify|verify} messages.
                 * @param message ScheduleUpgradeConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IScheduleUpgradeConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a ScheduleUpgradeConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ScheduleUpgradeConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.ScheduleUpgradeConfig;

                /**
                 * Decodes a ScheduleUpgradeConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ScheduleUpgradeConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.ScheduleUpgradeConfig;

                /**
                 * Verifies a ScheduleUpgradeConfig message.
                 * @param message Plain 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 ScheduleUpgradeConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ScheduleUpgradeConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.ScheduleUpgradeConfig;

                /**
                 * Creates a plain object from a ScheduleUpgradeConfig message. Also converts values to other types if specified.
                 * @param message ScheduleUpgradeConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.ScheduleUpgradeConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ScheduleUpgradeConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for ScheduleUpgradeConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a GkeAutoUpgradeConfig. */
            interface IGkeAutoUpgradeConfig {

                /** GkeAutoUpgradeConfig patchMode */
                patchMode?: (google.container.v1beta1.GkeAutoUpgradeConfig.PatchMode|keyof typeof google.container.v1beta1.GkeAutoUpgradeConfig.PatchMode|null);
            }

            /** Represents a GkeAutoUpgradeConfig. */
            class GkeAutoUpgradeConfig implements IGkeAutoUpgradeConfig {

                /**
                 * Constructs a new GkeAutoUpgradeConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IGkeAutoUpgradeConfig);

                /** GkeAutoUpgradeConfig patchMode. */
                public patchMode: (google.container.v1beta1.GkeAutoUpgradeConfig.PatchMode|keyof typeof google.container.v1beta1.GkeAutoUpgradeConfig.PatchMode);

                /**
                 * Creates a new GkeAutoUpgradeConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns GkeAutoUpgradeConfig instance
                 */
                public static create(properties?: google.container.v1beta1.IGkeAutoUpgradeConfig): google.container.v1beta1.GkeAutoUpgradeConfig;

                /**
                 * Encodes the specified GkeAutoUpgradeConfig message. Does not implicitly {@link google.container.v1beta1.GkeAutoUpgradeConfig.verify|verify} messages.
                 * @param message GkeAutoUpgradeConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IGkeAutoUpgradeConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified GkeAutoUpgradeConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.GkeAutoUpgradeConfig.verify|verify} messages.
                 * @param message GkeAutoUpgradeConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IGkeAutoUpgradeConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a GkeAutoUpgradeConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns GkeAutoUpgradeConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.GkeAutoUpgradeConfig;

                /**
                 * Decodes a GkeAutoUpgradeConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns GkeAutoUpgradeConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.GkeAutoUpgradeConfig;

                /**
                 * Verifies a GkeAutoUpgradeConfig message.
                 * @param message Plain 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 GkeAutoUpgradeConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns GkeAutoUpgradeConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.GkeAutoUpgradeConfig;

                /**
                 * Creates a plain object from a GkeAutoUpgradeConfig message. Also converts values to other types if specified.
                 * @param message GkeAutoUpgradeConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.GkeAutoUpgradeConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this GkeAutoUpgradeConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for GkeAutoUpgradeConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace GkeAutoUpgradeConfig {

                /** PatchMode enum. */
                enum PatchMode {
                    PATCH_MODE_UNSPECIFIED = 0,
                    ACCELERATED = 1
                }
            }

            /** Properties of a NetworkTierConfig. */
            interface INetworkTierConfig {

                /** NetworkTierConfig networkTier */
                networkTier?: (google.container.v1beta1.NetworkTierConfig.NetworkTier|keyof typeof google.container.v1beta1.NetworkTierConfig.NetworkTier|null);
            }

            /** Represents a NetworkTierConfig. */
            class NetworkTierConfig implements INetworkTierConfig {

                /**
                 * Constructs a new NetworkTierConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.INetworkTierConfig);

                /** NetworkTierConfig networkTier. */
                public networkTier: (google.container.v1beta1.NetworkTierConfig.NetworkTier|keyof typeof google.container.v1beta1.NetworkTierConfig.NetworkTier);

                /**
                 * Creates a new NetworkTierConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns NetworkTierConfig instance
                 */
                public static create(properties?: google.container.v1beta1.INetworkTierConfig): google.container.v1beta1.NetworkTierConfig;

                /**
                 * Encodes the specified NetworkTierConfig message. Does not implicitly {@link google.container.v1beta1.NetworkTierConfig.verify|verify} messages.
                 * @param message NetworkTierConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.INetworkTierConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified NetworkTierConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.NetworkTierConfig.verify|verify} messages.
                 * @param message NetworkTierConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.INetworkTierConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a NetworkTierConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns NetworkTierConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.NetworkTierConfig;

                /**
                 * Decodes a NetworkTierConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns NetworkTierConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.NetworkTierConfig;

                /**
                 * Verifies a NetworkTierConfig message.
                 * @param message Plain 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 NetworkTierConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns NetworkTierConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.NetworkTierConfig;

                /**
                 * Creates a plain object from a NetworkTierConfig message. Also converts values to other types if specified.
                 * @param message NetworkTierConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.NetworkTierConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this NetworkTierConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for NetworkTierConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace NetworkTierConfig {

                /** NetworkTier enum. */
                enum NetworkTier {
                    NETWORK_TIER_UNSPECIFIED = 0,
                    NETWORK_TIER_DEFAULT = 1,
                    NETWORK_TIER_PREMIUM = 2,
                    NETWORK_TIER_STANDARD = 3
                }
            }

            /** Properties of a SecretSyncConfig. */
            interface ISecretSyncConfig {

                /** SecretSyncConfig enabled */
                enabled?: (boolean|null);

                /** SecretSyncConfig rotationConfig */
                rotationConfig?: (google.container.v1beta1.SecretSyncConfig.ISyncRotationConfig|null);
            }

            /** Represents a SecretSyncConfig. */
            class SecretSyncConfig implements ISecretSyncConfig {

                /**
                 * Constructs a new SecretSyncConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.ISecretSyncConfig);

                /** SecretSyncConfig enabled. */
                public enabled?: (boolean|null);

                /** SecretSyncConfig rotationConfig. */
                public rotationConfig?: (google.container.v1beta1.SecretSyncConfig.ISyncRotationConfig|null);

                /**
                 * Creates a new SecretSyncConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns SecretSyncConfig instance
                 */
                public static create(properties?: google.container.v1beta1.ISecretSyncConfig): google.container.v1beta1.SecretSyncConfig;

                /**
                 * Encodes the specified SecretSyncConfig message. Does not implicitly {@link google.container.v1beta1.SecretSyncConfig.verify|verify} messages.
                 * @param message SecretSyncConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.ISecretSyncConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified SecretSyncConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.SecretSyncConfig.verify|verify} messages.
                 * @param message SecretSyncConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.ISecretSyncConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a SecretSyncConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns SecretSyncConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.SecretSyncConfig;

                /**
                 * Decodes a SecretSyncConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns SecretSyncConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.SecretSyncConfig;

                /**
                 * Verifies a SecretSyncConfig message.
                 * @param message Plain 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 SecretSyncConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns SecretSyncConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.SecretSyncConfig;

                /**
                 * Creates a plain object from a SecretSyncConfig message. Also converts values to other types if specified.
                 * @param message SecretSyncConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.SecretSyncConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this SecretSyncConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for SecretSyncConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace SecretSyncConfig {

                /** Properties of a SyncRotationConfig. */
                interface ISyncRotationConfig {

                    /** SyncRotationConfig enabled */
                    enabled?: (boolean|null);

                    /** SyncRotationConfig rotationInterval */
                    rotationInterval?: (google.protobuf.IDuration|null);
                }

                /** Represents a SyncRotationConfig. */
                class SyncRotationConfig implements ISyncRotationConfig {

                    /**
                     * Constructs a new SyncRotationConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.container.v1beta1.SecretSyncConfig.ISyncRotationConfig);

                    /** SyncRotationConfig enabled. */
                    public enabled?: (boolean|null);

                    /** SyncRotationConfig rotationInterval. */
                    public rotationInterval?: (google.protobuf.IDuration|null);

                    /**
                     * Creates a new SyncRotationConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SyncRotationConfig instance
                     */
                    public static create(properties?: google.container.v1beta1.SecretSyncConfig.ISyncRotationConfig): google.container.v1beta1.SecretSyncConfig.SyncRotationConfig;

                    /**
                     * Encodes the specified SyncRotationConfig message. Does not implicitly {@link google.container.v1beta1.SecretSyncConfig.SyncRotationConfig.verify|verify} messages.
                     * @param message SyncRotationConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.container.v1beta1.SecretSyncConfig.ISyncRotationConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SyncRotationConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.SecretSyncConfig.SyncRotationConfig.verify|verify} messages.
                     * @param message SyncRotationConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.container.v1beta1.SecretSyncConfig.ISyncRotationConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SyncRotationConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SyncRotationConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.SecretSyncConfig.SyncRotationConfig;

                    /**
                     * Decodes a SyncRotationConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SyncRotationConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.SecretSyncConfig.SyncRotationConfig;

                    /**
                     * Verifies a SyncRotationConfig message.
                     * @param message Plain 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 SyncRotationConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SyncRotationConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.container.v1beta1.SecretSyncConfig.SyncRotationConfig;

                    /**
                     * Creates a plain object from a SyncRotationConfig message. Also converts values to other types if specified.
                     * @param message SyncRotationConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.container.v1beta1.SecretSyncConfig.SyncRotationConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SyncRotationConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SyncRotationConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }
            }

            /** Properties of a ManagedOpenTelemetryConfig. */
            interface IManagedOpenTelemetryConfig {

                /** ManagedOpenTelemetryConfig scope */
                scope?: (google.container.v1beta1.ManagedOpenTelemetryConfig.Scope|keyof typeof google.container.v1beta1.ManagedOpenTelemetryConfig.Scope|null);
            }

            /** Represents a ManagedOpenTelemetryConfig. */
            class ManagedOpenTelemetryConfig implements IManagedOpenTelemetryConfig {

                /**
                 * Constructs a new ManagedOpenTelemetryConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IManagedOpenTelemetryConfig);

                /** ManagedOpenTelemetryConfig scope. */
                public scope?: (google.container.v1beta1.ManagedOpenTelemetryConfig.Scope|keyof typeof google.container.v1beta1.ManagedOpenTelemetryConfig.Scope|null);

                /**
                 * Creates a new ManagedOpenTelemetryConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ManagedOpenTelemetryConfig instance
                 */
                public static create(properties?: google.container.v1beta1.IManagedOpenTelemetryConfig): google.container.v1beta1.ManagedOpenTelemetryConfig;

                /**
                 * Encodes the specified ManagedOpenTelemetryConfig message. Does not implicitly {@link google.container.v1beta1.ManagedOpenTelemetryConfig.verify|verify} messages.
                 * @param message ManagedOpenTelemetryConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IManagedOpenTelemetryConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified ManagedOpenTelemetryConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.ManagedOpenTelemetryConfig.verify|verify} messages.
                 * @param message ManagedOpenTelemetryConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IManagedOpenTelemetryConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a ManagedOpenTelemetryConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ManagedOpenTelemetryConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.ManagedOpenTelemetryConfig;

                /**
                 * Decodes a ManagedOpenTelemetryConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ManagedOpenTelemetryConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.ManagedOpenTelemetryConfig;

                /**
                 * Verifies a ManagedOpenTelemetryConfig message.
                 * @param message Plain 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 ManagedOpenTelemetryConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ManagedOpenTelemetryConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.ManagedOpenTelemetryConfig;

                /**
                 * Creates a plain object from a ManagedOpenTelemetryConfig message. Also converts values to other types if specified.
                 * @param message ManagedOpenTelemetryConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.ManagedOpenTelemetryConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ManagedOpenTelemetryConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for ManagedOpenTelemetryConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace ManagedOpenTelemetryConfig {

                /** Scope enum. */
                enum Scope {
                    SCOPE_UNSPECIFIED = 0,
                    NONE = 1,
                    COLLECTION_AND_INSTRUMENTATION_COMPONENTS = 2
                }
            }

            /** Properties of a ManagedMachineLearningDiagnosticsConfig. */
            interface IManagedMachineLearningDiagnosticsConfig {

                /** ManagedMachineLearningDiagnosticsConfig enabled */
                enabled?: (boolean|null);
            }

            /** Represents a ManagedMachineLearningDiagnosticsConfig. */
            class ManagedMachineLearningDiagnosticsConfig implements IManagedMachineLearningDiagnosticsConfig {

                /**
                 * Constructs a new ManagedMachineLearningDiagnosticsConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IManagedMachineLearningDiagnosticsConfig);

                /** ManagedMachineLearningDiagnosticsConfig enabled. */
                public enabled?: (boolean|null);

                /**
                 * Creates a new ManagedMachineLearningDiagnosticsConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ManagedMachineLearningDiagnosticsConfig instance
                 */
                public static create(properties?: google.container.v1beta1.IManagedMachineLearningDiagnosticsConfig): google.container.v1beta1.ManagedMachineLearningDiagnosticsConfig;

                /**
                 * Encodes the specified ManagedMachineLearningDiagnosticsConfig message. Does not implicitly {@link google.container.v1beta1.ManagedMachineLearningDiagnosticsConfig.verify|verify} messages.
                 * @param message ManagedMachineLearningDiagnosticsConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IManagedMachineLearningDiagnosticsConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified ManagedMachineLearningDiagnosticsConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.ManagedMachineLearningDiagnosticsConfig.verify|verify} messages.
                 * @param message ManagedMachineLearningDiagnosticsConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IManagedMachineLearningDiagnosticsConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a ManagedMachineLearningDiagnosticsConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ManagedMachineLearningDiagnosticsConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.ManagedMachineLearningDiagnosticsConfig;

                /**
                 * Decodes a ManagedMachineLearningDiagnosticsConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ManagedMachineLearningDiagnosticsConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.ManagedMachineLearningDiagnosticsConfig;

                /**
                 * Verifies a ManagedMachineLearningDiagnosticsConfig message.
                 * @param message Plain 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 ManagedMachineLearningDiagnosticsConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ManagedMachineLearningDiagnosticsConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.ManagedMachineLearningDiagnosticsConfig;

                /**
                 * Creates a plain object from a ManagedMachineLearningDiagnosticsConfig message. Also converts values to other types if specified.
                 * @param message ManagedMachineLearningDiagnosticsConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.ManagedMachineLearningDiagnosticsConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ManagedMachineLearningDiagnosticsConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for ManagedMachineLearningDiagnosticsConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a PodSnapshotConfig. */
            interface IPodSnapshotConfig {

                /** PodSnapshotConfig enabled */
                enabled?: (boolean|null);
            }

            /** Represents a PodSnapshotConfig. */
            class PodSnapshotConfig implements IPodSnapshotConfig {

                /**
                 * Constructs a new PodSnapshotConfig.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.container.v1beta1.IPodSnapshotConfig);

                /** PodSnapshotConfig enabled. */
                public enabled: boolean;

                /**
                 * Creates a new PodSnapshotConfig instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns PodSnapshotConfig instance
                 */
                public static create(properties?: google.container.v1beta1.IPodSnapshotConfig): google.container.v1beta1.PodSnapshotConfig;

                /**
                 * Encodes the specified PodSnapshotConfig message. Does not implicitly {@link google.container.v1beta1.PodSnapshotConfig.verify|verify} messages.
                 * @param message PodSnapshotConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.container.v1beta1.IPodSnapshotConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified PodSnapshotConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.PodSnapshotConfig.verify|verify} messages.
                 * @param message PodSnapshotConfig message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.container.v1beta1.IPodSnapshotConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a PodSnapshotConfig message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns PodSnapshotConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.PodSnapshotConfig;

                /**
                 * Decodes a PodSnapshotConfig message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns PodSnapshotConfig
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.PodSnapshotConfig;

                /**
                 * Verifies a PodSnapshotConfig message.
                 * @param message Plain 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 PodSnapshotConfig message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns PodSnapshotConfig
                 */
                public static fromObject(object: { [k: string]: any }): google.container.v1beta1.PodSnapshotConfig;

                /**
                 * Creates a plain object from a PodSnapshotConfig message. Also converts values to other types if specified.
                 * @param message PodSnapshotConfig
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.container.v1beta1.PodSnapshotConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this PodSnapshotConfig to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for PodSnapshotConfig
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }
        }
    }

    /** Namespace api. */
    namespace api {

        /** Properties of a Http. */
        interface IHttp {

            /** Http rules */
            rules?: (google.api.IHttpRule[]|null);

            /** Http fullyDecodeReservedExpansion */
            fullyDecodeReservedExpansion?: (boolean|null);
        }

        /** Represents a Http. */
        class Http implements IHttp {

            /**
             * Constructs a new Http.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.api.IHttp);

            /** Http rules. */
            public rules: google.api.IHttpRule[];

            /** Http fullyDecodeReservedExpansion. */
            public fullyDecodeReservedExpansion: boolean;

            /**
             * Creates a new Http instance using the specified properties.
             * @param [properties] Properties to set
             * @returns Http instance
             */
            public static create(properties?: google.api.IHttp): google.api.Http;

            /**
             * Encodes the specified Http message. Does not implicitly {@link google.api.Http.verify|verify} messages.
             * @param message Http message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.api.IHttp, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified Http message, length delimited. Does not implicitly {@link google.api.Http.verify|verify} messages.
             * @param message Http message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.api.IHttp, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a Http message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns Http
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.Http;

            /**
             * Decodes a Http message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns Http
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.Http;

            /**
             * Verifies a Http message.
             * @param message Plain 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 Http message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns Http
             */
            public static fromObject(object: { [k: string]: any }): google.api.Http;

            /**
             * Creates a plain object from a Http message. Also converts values to other types if specified.
             * @param message Http
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.api.Http, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this Http to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for Http
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a HttpRule. */
        interface IHttpRule {

            /** HttpRule selector */
            selector?: (string|null);

            /** HttpRule get */
            get?: (string|null);

            /** HttpRule put */
            put?: (string|null);

            /** HttpRule post */
            post?: (string|null);

            /** HttpRule delete */
            "delete"?: (string|null);

            /** HttpRule patch */
            patch?: (string|null);

            /** HttpRule custom */
            custom?: (google.api.ICustomHttpPattern|null);

            /** HttpRule body */
            body?: (string|null);

            /** HttpRule responseBody */
            responseBody?: (string|null);

            /** HttpRule additionalBindings */
            additionalBindings?: (google.api.IHttpRule[]|null);
        }

        /** Represents a HttpRule. */
        class HttpRule implements IHttpRule {

            /**
             * Constructs a new HttpRule.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.api.IHttpRule);

            /** HttpRule selector. */
            public selector: string;

            /** HttpRule get. */
            public get?: (string|null);

            /** HttpRule put. */
            public put?: (string|null);

            /** HttpRule post. */
            public post?: (string|null);

            /** HttpRule delete. */
            public delete?: (string|null);

            /** HttpRule patch. */
            public patch?: (string|null);

            /** HttpRule custom. */
            public custom?: (google.api.ICustomHttpPattern|null);

            /** HttpRule body. */
            public body: string;

            /** HttpRule responseBody. */
            public responseBody: string;

            /** HttpRule additionalBindings. */
            public additionalBindings: google.api.IHttpRule[];

            /** HttpRule pattern. */
            public pattern?: ("get"|"put"|"post"|"delete"|"patch"|"custom");

            /**
             * Creates a new HttpRule instance using the specified properties.
             * @param [properties] Properties to set
             * @returns HttpRule instance
             */
            public static create(properties?: google.api.IHttpRule): google.api.HttpRule;

            /**
             * Encodes the specified HttpRule message. Does not implicitly {@link google.api.HttpRule.verify|verify} messages.
             * @param message HttpRule message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.api.IHttpRule, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified HttpRule message, length delimited. Does not implicitly {@link google.api.HttpRule.verify|verify} messages.
             * @param message HttpRule message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.api.IHttpRule, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a HttpRule message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns HttpRule
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.HttpRule;

            /**
             * Decodes a HttpRule message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns HttpRule
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.HttpRule;

            /**
             * Verifies a HttpRule message.
             * @param message Plain 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 HttpRule message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns HttpRule
             */
            public static fromObject(object: { [k: string]: any }): google.api.HttpRule;

            /**
             * Creates a plain object from a HttpRule message. Also converts values to other types if specified.
             * @param message HttpRule
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.api.HttpRule, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this HttpRule to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for HttpRule
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a CustomHttpPattern. */
        interface ICustomHttpPattern {

            /** CustomHttpPattern kind */
            kind?: (string|null);

            /** CustomHttpPattern path */
            path?: (string|null);
        }

        /** Represents a CustomHttpPattern. */
        class CustomHttpPattern implements ICustomHttpPattern {

            /**
             * Constructs a new CustomHttpPattern.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.api.ICustomHttpPattern);

            /** CustomHttpPattern kind. */
            public kind: string;

            /** CustomHttpPattern path. */
            public path: string;

            /**
             * Creates a new CustomHttpPattern instance using the specified properties.
             * @param [properties] Properties to set
             * @returns CustomHttpPattern instance
             */
            public static create(properties?: google.api.ICustomHttpPattern): google.api.CustomHttpPattern;

            /**
             * Encodes the specified CustomHttpPattern message. Does not implicitly {@link google.api.CustomHttpPattern.verify|verify} messages.
             * @param message CustomHttpPattern message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.api.ICustomHttpPattern, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified CustomHttpPattern message, length delimited. Does not implicitly {@link google.api.CustomHttpPattern.verify|verify} messages.
             * @param message CustomHttpPattern message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.api.ICustomHttpPattern, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a CustomHttpPattern message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns CustomHttpPattern
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.CustomHttpPattern;

            /**
             * Decodes a CustomHttpPattern message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns CustomHttpPattern
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.CustomHttpPattern;

            /**
             * Verifies a CustomHttpPattern message.
             * @param message Plain 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 CustomHttpPattern message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns CustomHttpPattern
             */
            public static fromObject(object: { [k: string]: any }): google.api.CustomHttpPattern;

            /**
             * Creates a plain object from a CustomHttpPattern message. Also converts values to other types if specified.
             * @param message CustomHttpPattern
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.api.CustomHttpPattern, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this CustomHttpPattern to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for CustomHttpPattern
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a CommonLanguageSettings. */
        interface ICommonLanguageSettings {

            /** CommonLanguageSettings referenceDocsUri */
            referenceDocsUri?: (string|null);

            /** CommonLanguageSettings destinations */
            destinations?: (google.api.ClientLibraryDestination[]|null);
        }

        /** Represents a CommonLanguageSettings. */
        class CommonLanguageSettings implements ICommonLanguageSettings {

            /**
             * Constructs a new CommonLanguageSettings.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.api.ICommonLanguageSettings);

            /** CommonLanguageSettings referenceDocsUri. */
            public referenceDocsUri: string;

            /** CommonLanguageSettings destinations. */
            public destinations: google.api.ClientLibraryDestination[];

            /**
             * Creates a new CommonLanguageSettings instance using the specified properties.
             * @param [properties] Properties to set
             * @returns CommonLanguageSettings instance
             */
            public static create(properties?: google.api.ICommonLanguageSettings): google.api.CommonLanguageSettings;

            /**
             * Encodes the specified CommonLanguageSettings message. Does not implicitly {@link google.api.CommonLanguageSettings.verify|verify} messages.
             * @param message CommonLanguageSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.api.ICommonLanguageSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified CommonLanguageSettings message, length delimited. Does not implicitly {@link google.api.CommonLanguageSettings.verify|verify} messages.
             * @param message CommonLanguageSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.api.ICommonLanguageSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a CommonLanguageSettings message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns CommonLanguageSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.CommonLanguageSettings;

            /**
             * Decodes a CommonLanguageSettings message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns CommonLanguageSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.CommonLanguageSettings;

            /**
             * Verifies a CommonLanguageSettings message.
             * @param message Plain 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 CommonLanguageSettings message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns CommonLanguageSettings
             */
            public static fromObject(object: { [k: string]: any }): google.api.CommonLanguageSettings;

            /**
             * Creates a plain object from a CommonLanguageSettings message. Also converts values to other types if specified.
             * @param message CommonLanguageSettings
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.api.CommonLanguageSettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this CommonLanguageSettings to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for CommonLanguageSettings
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a ClientLibrarySettings. */
        interface IClientLibrarySettings {

            /** ClientLibrarySettings version */
            version?: (string|null);

            /** ClientLibrarySettings launchStage */
            launchStage?: (google.api.LaunchStage|keyof typeof google.api.LaunchStage|null);

            /** ClientLibrarySettings restNumericEnums */
            restNumericEnums?: (boolean|null);

            /** ClientLibrarySettings javaSettings */
            javaSettings?: (google.api.IJavaSettings|null);

            /** ClientLibrarySettings cppSettings */
            cppSettings?: (google.api.ICppSettings|null);

            /** ClientLibrarySettings phpSettings */
            phpSettings?: (google.api.IPhpSettings|null);

            /** ClientLibrarySettings pythonSettings */
            pythonSettings?: (google.api.IPythonSettings|null);

            /** ClientLibrarySettings nodeSettings */
            nodeSettings?: (google.api.INodeSettings|null);

            /** ClientLibrarySettings dotnetSettings */
            dotnetSettings?: (google.api.IDotnetSettings|null);

            /** ClientLibrarySettings rubySettings */
            rubySettings?: (google.api.IRubySettings|null);

            /** ClientLibrarySettings goSettings */
            goSettings?: (google.api.IGoSettings|null);
        }

        /** Represents a ClientLibrarySettings. */
        class ClientLibrarySettings implements IClientLibrarySettings {

            /**
             * Constructs a new ClientLibrarySettings.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.api.IClientLibrarySettings);

            /** ClientLibrarySettings version. */
            public version: string;

            /** ClientLibrarySettings launchStage. */
            public launchStage: (google.api.LaunchStage|keyof typeof google.api.LaunchStage);

            /** ClientLibrarySettings restNumericEnums. */
            public restNumericEnums: boolean;

            /** ClientLibrarySettings javaSettings. */
            public javaSettings?: (google.api.IJavaSettings|null);

            /** ClientLibrarySettings cppSettings. */
            public cppSettings?: (google.api.ICppSettings|null);

            /** ClientLibrarySettings phpSettings. */
            public phpSettings?: (google.api.IPhpSettings|null);

            /** ClientLibrarySettings pythonSettings. */
            public pythonSettings?: (google.api.IPythonSettings|null);

            /** ClientLibrarySettings nodeSettings. */
            public nodeSettings?: (google.api.INodeSettings|null);

            /** ClientLibrarySettings dotnetSettings. */
            public dotnetSettings?: (google.api.IDotnetSettings|null);

            /** ClientLibrarySettings rubySettings. */
            public rubySettings?: (google.api.IRubySettings|null);

            /** ClientLibrarySettings goSettings. */
            public goSettings?: (google.api.IGoSettings|null);

            /**
             * Creates a new ClientLibrarySettings instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ClientLibrarySettings instance
             */
            public static create(properties?: google.api.IClientLibrarySettings): google.api.ClientLibrarySettings;

            /**
             * Encodes the specified ClientLibrarySettings message. Does not implicitly {@link google.api.ClientLibrarySettings.verify|verify} messages.
             * @param message ClientLibrarySettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.api.IClientLibrarySettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ClientLibrarySettings message, length delimited. Does not implicitly {@link google.api.ClientLibrarySettings.verify|verify} messages.
             * @param message ClientLibrarySettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.api.IClientLibrarySettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a ClientLibrarySettings message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ClientLibrarySettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.ClientLibrarySettings;

            /**
             * Decodes a ClientLibrarySettings message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ClientLibrarySettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.ClientLibrarySettings;

            /**
             * Verifies a ClientLibrarySettings message.
             * @param message Plain 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 ClientLibrarySettings message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ClientLibrarySettings
             */
            public static fromObject(object: { [k: string]: any }): google.api.ClientLibrarySettings;

            /**
             * Creates a plain object from a ClientLibrarySettings message. Also converts values to other types if specified.
             * @param message ClientLibrarySettings
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.api.ClientLibrarySettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ClientLibrarySettings to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for ClientLibrarySettings
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a Publishing. */
        interface IPublishing {

            /** Publishing methodSettings */
            methodSettings?: (google.api.IMethodSettings[]|null);

            /** Publishing newIssueUri */
            newIssueUri?: (string|null);

            /** Publishing documentationUri */
            documentationUri?: (string|null);

            /** Publishing apiShortName */
            apiShortName?: (string|null);

            /** Publishing githubLabel */
            githubLabel?: (string|null);

            /** Publishing codeownerGithubTeams */
            codeownerGithubTeams?: (string[]|null);

            /** Publishing docTagPrefix */
            docTagPrefix?: (string|null);

            /** Publishing organization */
            organization?: (google.api.ClientLibraryOrganization|keyof typeof google.api.ClientLibraryOrganization|null);

            /** Publishing librarySettings */
            librarySettings?: (google.api.IClientLibrarySettings[]|null);

            /** Publishing protoReferenceDocumentationUri */
            protoReferenceDocumentationUri?: (string|null);

            /** Publishing restReferenceDocumentationUri */
            restReferenceDocumentationUri?: (string|null);
        }

        /** Represents a Publishing. */
        class Publishing implements IPublishing {

            /**
             * Constructs a new Publishing.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.api.IPublishing);

            /** Publishing methodSettings. */
            public methodSettings: google.api.IMethodSettings[];

            /** Publishing newIssueUri. */
            public newIssueUri: string;

            /** Publishing documentationUri. */
            public documentationUri: string;

            /** Publishing apiShortName. */
            public apiShortName: string;

            /** Publishing githubLabel. */
            public githubLabel: string;

            /** Publishing codeownerGithubTeams. */
            public codeownerGithubTeams: string[];

            /** Publishing docTagPrefix. */
            public docTagPrefix: string;

            /** Publishing organization. */
            public organization: (google.api.ClientLibraryOrganization|keyof typeof google.api.ClientLibraryOrganization);

            /** Publishing librarySettings. */
            public librarySettings: google.api.IClientLibrarySettings[];

            /** Publishing protoReferenceDocumentationUri. */
            public protoReferenceDocumentationUri: string;

            /** Publishing restReferenceDocumentationUri. */
            public restReferenceDocumentationUri: string;

            /**
             * Creates a new Publishing instance using the specified properties.
             * @param [properties] Properties to set
             * @returns Publishing instance
             */
            public static create(properties?: google.api.IPublishing): google.api.Publishing;

            /**
             * Encodes the specified Publishing message. Does not implicitly {@link google.api.Publishing.verify|verify} messages.
             * @param message Publishing message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.api.IPublishing, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified Publishing message, length delimited. Does not implicitly {@link google.api.Publishing.verify|verify} messages.
             * @param message Publishing message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.api.IPublishing, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a Publishing message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns Publishing
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.Publishing;

            /**
             * Decodes a Publishing message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns Publishing
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.Publishing;

            /**
             * Verifies a Publishing message.
             * @param message Plain 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 Publishing message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns Publishing
             */
            public static fromObject(object: { [k: string]: any }): google.api.Publishing;

            /**
             * Creates a plain object from a Publishing message. Also converts values to other types if specified.
             * @param message Publishing
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.api.Publishing, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this Publishing to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for Publishing
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a JavaSettings. */
        interface IJavaSettings {

            /** JavaSettings libraryPackage */
            libraryPackage?: (string|null);

            /** JavaSettings serviceClassNames */
            serviceClassNames?: ({ [k: string]: string }|null);

            /** JavaSettings common */
            common?: (google.api.ICommonLanguageSettings|null);
        }

        /** Represents a JavaSettings. */
        class JavaSettings implements IJavaSettings {

            /**
             * Constructs a new JavaSettings.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.api.IJavaSettings);

            /** JavaSettings libraryPackage. */
            public libraryPackage: string;

            /** JavaSettings serviceClassNames. */
            public serviceClassNames: { [k: string]: string };

            /** JavaSettings common. */
            public common?: (google.api.ICommonLanguageSettings|null);

            /**
             * Creates a new JavaSettings instance using the specified properties.
             * @param [properties] Properties to set
             * @returns JavaSettings instance
             */
            public static create(properties?: google.api.IJavaSettings): google.api.JavaSettings;

            /**
             * Encodes the specified JavaSettings message. Does not implicitly {@link google.api.JavaSettings.verify|verify} messages.
             * @param message JavaSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.api.IJavaSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified JavaSettings message, length delimited. Does not implicitly {@link google.api.JavaSettings.verify|verify} messages.
             * @param message JavaSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.api.IJavaSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a JavaSettings message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns JavaSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.JavaSettings;

            /**
             * Decodes a JavaSettings message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns JavaSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.JavaSettings;

            /**
             * Verifies a JavaSettings message.
             * @param message Plain 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 JavaSettings message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns JavaSettings
             */
            public static fromObject(object: { [k: string]: any }): google.api.JavaSettings;

            /**
             * Creates a plain object from a JavaSettings message. Also converts values to other types if specified.
             * @param message JavaSettings
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.api.JavaSettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this JavaSettings to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for JavaSettings
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a CppSettings. */
        interface ICppSettings {

            /** CppSettings common */
            common?: (google.api.ICommonLanguageSettings|null);
        }

        /** Represents a CppSettings. */
        class CppSettings implements ICppSettings {

            /**
             * Constructs a new CppSettings.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.api.ICppSettings);

            /** CppSettings common. */
            public common?: (google.api.ICommonLanguageSettings|null);

            /**
             * Creates a new CppSettings instance using the specified properties.
             * @param [properties] Properties to set
             * @returns CppSettings instance
             */
            public static create(properties?: google.api.ICppSettings): google.api.CppSettings;

            /**
             * Encodes the specified CppSettings message. Does not implicitly {@link google.api.CppSettings.verify|verify} messages.
             * @param message CppSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.api.ICppSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified CppSettings message, length delimited. Does not implicitly {@link google.api.CppSettings.verify|verify} messages.
             * @param message CppSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.api.ICppSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a CppSettings message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns CppSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.CppSettings;

            /**
             * Decodes a CppSettings message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns CppSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.CppSettings;

            /**
             * Verifies a CppSettings message.
             * @param message Plain 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 CppSettings message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns CppSettings
             */
            public static fromObject(object: { [k: string]: any }): google.api.CppSettings;

            /**
             * Creates a plain object from a CppSettings message. Also converts values to other types if specified.
             * @param message CppSettings
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.api.CppSettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this CppSettings to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for CppSettings
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a PhpSettings. */
        interface IPhpSettings {

            /** PhpSettings common */
            common?: (google.api.ICommonLanguageSettings|null);
        }

        /** Represents a PhpSettings. */
        class PhpSettings implements IPhpSettings {

            /**
             * Constructs a new PhpSettings.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.api.IPhpSettings);

            /** PhpSettings common. */
            public common?: (google.api.ICommonLanguageSettings|null);

            /**
             * Creates a new PhpSettings instance using the specified properties.
             * @param [properties] Properties to set
             * @returns PhpSettings instance
             */
            public static create(properties?: google.api.IPhpSettings): google.api.PhpSettings;

            /**
             * Encodes the specified PhpSettings message. Does not implicitly {@link google.api.PhpSettings.verify|verify} messages.
             * @param message PhpSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.api.IPhpSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified PhpSettings message, length delimited. Does not implicitly {@link google.api.PhpSettings.verify|verify} messages.
             * @param message PhpSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.api.IPhpSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a PhpSettings message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns PhpSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.PhpSettings;

            /**
             * Decodes a PhpSettings message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns PhpSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.PhpSettings;

            /**
             * Verifies a PhpSettings message.
             * @param message Plain 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 PhpSettings message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns PhpSettings
             */
            public static fromObject(object: { [k: string]: any }): google.api.PhpSettings;

            /**
             * Creates a plain object from a PhpSettings message. Also converts values to other types if specified.
             * @param message PhpSettings
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.api.PhpSettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this PhpSettings to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for PhpSettings
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a PythonSettings. */
        interface IPythonSettings {

            /** PythonSettings common */
            common?: (google.api.ICommonLanguageSettings|null);
        }

        /** Represents a PythonSettings. */
        class PythonSettings implements IPythonSettings {

            /**
             * Constructs a new PythonSettings.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.api.IPythonSettings);

            /** PythonSettings common. */
            public common?: (google.api.ICommonLanguageSettings|null);

            /**
             * Creates a new PythonSettings instance using the specified properties.
             * @param [properties] Properties to set
             * @returns PythonSettings instance
             */
            public static create(properties?: google.api.IPythonSettings): google.api.PythonSettings;

            /**
             * Encodes the specified PythonSettings message. Does not implicitly {@link google.api.PythonSettings.verify|verify} messages.
             * @param message PythonSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.api.IPythonSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified PythonSettings message, length delimited. Does not implicitly {@link google.api.PythonSettings.verify|verify} messages.
             * @param message PythonSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.api.IPythonSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a PythonSettings message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns PythonSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.PythonSettings;

            /**
             * Decodes a PythonSettings message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns PythonSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.PythonSettings;

            /**
             * Verifies a PythonSettings message.
             * @param message Plain 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 PythonSettings message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns PythonSettings
             */
            public static fromObject(object: { [k: string]: any }): google.api.PythonSettings;

            /**
             * Creates a plain object from a PythonSettings message. Also converts values to other types if specified.
             * @param message PythonSettings
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.api.PythonSettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this PythonSettings to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for PythonSettings
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a NodeSettings. */
        interface INodeSettings {

            /** NodeSettings common */
            common?: (google.api.ICommonLanguageSettings|null);
        }

        /** Represents a NodeSettings. */
        class NodeSettings implements INodeSettings {

            /**
             * Constructs a new NodeSettings.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.api.INodeSettings);

            /** NodeSettings common. */
            public common?: (google.api.ICommonLanguageSettings|null);

            /**
             * Creates a new NodeSettings instance using the specified properties.
             * @param [properties] Properties to set
             * @returns NodeSettings instance
             */
            public static create(properties?: google.api.INodeSettings): google.api.NodeSettings;

            /**
             * Encodes the specified NodeSettings message. Does not implicitly {@link google.api.NodeSettings.verify|verify} messages.
             * @param message NodeSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.api.INodeSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified NodeSettings message, length delimited. Does not implicitly {@link google.api.NodeSettings.verify|verify} messages.
             * @param message NodeSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.api.INodeSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a NodeSettings message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns NodeSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.NodeSettings;

            /**
             * Decodes a NodeSettings message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns NodeSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.NodeSettings;

            /**
             * Verifies a NodeSettings message.
             * @param message Plain 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 NodeSettings message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns NodeSettings
             */
            public static fromObject(object: { [k: string]: any }): google.api.NodeSettings;

            /**
             * Creates a plain object from a NodeSettings message. Also converts values to other types if specified.
             * @param message NodeSettings
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.api.NodeSettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this NodeSettings to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for NodeSettings
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a DotnetSettings. */
        interface IDotnetSettings {

            /** DotnetSettings common */
            common?: (google.api.ICommonLanguageSettings|null);

            /** DotnetSettings renamedServices */
            renamedServices?: ({ [k: string]: string }|null);

            /** DotnetSettings renamedResources */
            renamedResources?: ({ [k: string]: string }|null);

            /** DotnetSettings ignoredResources */
            ignoredResources?: (string[]|null);

            /** DotnetSettings forcedNamespaceAliases */
            forcedNamespaceAliases?: (string[]|null);

            /** DotnetSettings handwrittenSignatures */
            handwrittenSignatures?: (string[]|null);
        }

        /** Represents a DotnetSettings. */
        class DotnetSettings implements IDotnetSettings {

            /**
             * Constructs a new DotnetSettings.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.api.IDotnetSettings);

            /** DotnetSettings common. */
            public common?: (google.api.ICommonLanguageSettings|null);

            /** DotnetSettings renamedServices. */
            public renamedServices: { [k: string]: string };

            /** DotnetSettings renamedResources. */
            public renamedResources: { [k: string]: string };

            /** DotnetSettings ignoredResources. */
            public ignoredResources: string[];

            /** DotnetSettings forcedNamespaceAliases. */
            public forcedNamespaceAliases: string[];

            /** DotnetSettings handwrittenSignatures. */
            public handwrittenSignatures: string[];

            /**
             * Creates a new DotnetSettings instance using the specified properties.
             * @param [properties] Properties to set
             * @returns DotnetSettings instance
             */
            public static create(properties?: google.api.IDotnetSettings): google.api.DotnetSettings;

            /**
             * Encodes the specified DotnetSettings message. Does not implicitly {@link google.api.DotnetSettings.verify|verify} messages.
             * @param message DotnetSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.api.IDotnetSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified DotnetSettings message, length delimited. Does not implicitly {@link google.api.DotnetSettings.verify|verify} messages.
             * @param message DotnetSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.api.IDotnetSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a DotnetSettings message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns DotnetSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.DotnetSettings;

            /**
             * Decodes a DotnetSettings message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns DotnetSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.DotnetSettings;

            /**
             * Verifies a DotnetSettings message.
             * @param message Plain 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 DotnetSettings message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns DotnetSettings
             */
            public static fromObject(object: { [k: string]: any }): google.api.DotnetSettings;

            /**
             * Creates a plain object from a DotnetSettings message. Also converts values to other types if specified.
             * @param message DotnetSettings
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.api.DotnetSettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this DotnetSettings to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for DotnetSettings
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a RubySettings. */
        interface IRubySettings {

            /** RubySettings common */
            common?: (google.api.ICommonLanguageSettings|null);
        }

        /** Represents a RubySettings. */
        class RubySettings implements IRubySettings {

            /**
             * Constructs a new RubySettings.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.api.IRubySettings);

            /** RubySettings common. */
            public common?: (google.api.ICommonLanguageSettings|null);

            /**
             * Creates a new RubySettings instance using the specified properties.
             * @param [properties] Properties to set
             * @returns RubySettings instance
             */
            public static create(properties?: google.api.IRubySettings): google.api.RubySettings;

            /**
             * Encodes the specified RubySettings message. Does not implicitly {@link google.api.RubySettings.verify|verify} messages.
             * @param message RubySettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.api.IRubySettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified RubySettings message, length delimited. Does not implicitly {@link google.api.RubySettings.verify|verify} messages.
             * @param message RubySettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.api.IRubySettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a RubySettings message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns RubySettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.RubySettings;

            /**
             * Decodes a RubySettings message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns RubySettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.RubySettings;

            /**
             * Verifies a RubySettings message.
             * @param message Plain 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 RubySettings message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns RubySettings
             */
            public static fromObject(object: { [k: string]: any }): google.api.RubySettings;

            /**
             * Creates a plain object from a RubySettings message. Also converts values to other types if specified.
             * @param message RubySettings
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.api.RubySettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this RubySettings to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for RubySettings
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a GoSettings. */
        interface IGoSettings {

            /** GoSettings common */
            common?: (google.api.ICommonLanguageSettings|null);
        }

        /** Represents a GoSettings. */
        class GoSettings implements IGoSettings {

            /**
             * Constructs a new GoSettings.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.api.IGoSettings);

            /** GoSettings common. */
            public common?: (google.api.ICommonLanguageSettings|null);

            /**
             * Creates a new GoSettings instance using the specified properties.
             * @param [properties] Properties to set
             * @returns GoSettings instance
             */
            public static create(properties?: google.api.IGoSettings): google.api.GoSettings;

            /**
             * Encodes the specified GoSettings message. Does not implicitly {@link google.api.GoSettings.verify|verify} messages.
             * @param message GoSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.api.IGoSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified GoSettings message, length delimited. Does not implicitly {@link google.api.GoSettings.verify|verify} messages.
             * @param message GoSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.api.IGoSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a GoSettings message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns GoSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.GoSettings;

            /**
             * Decodes a GoSettings message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns GoSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.GoSettings;

            /**
             * Verifies a GoSettings message.
             * @param message Plain 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 GoSettings message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns GoSettings
             */
            public static fromObject(object: { [k: string]: any }): google.api.GoSettings;

            /**
             * Creates a plain object from a GoSettings message. Also converts values to other types if specified.
             * @param message GoSettings
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.api.GoSettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this GoSettings to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for GoSettings
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a MethodSettings. */
        interface IMethodSettings {

            /** MethodSettings selector */
            selector?: (string|null);

            /** MethodSettings longRunning */
            longRunning?: (google.api.MethodSettings.ILongRunning|null);

            /** MethodSettings autoPopulatedFields */
            autoPopulatedFields?: (string[]|null);
        }

        /** Represents a MethodSettings. */
        class MethodSettings implements IMethodSettings {

            /**
             * Constructs a new MethodSettings.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.api.IMethodSettings);

            /** MethodSettings selector. */
            public selector: string;

            /** MethodSettings longRunning. */
            public longRunning?: (google.api.MethodSettings.ILongRunning|null);

            /** MethodSettings autoPopulatedFields. */
            public autoPopulatedFields: string[];

            /**
             * Creates a new MethodSettings instance using the specified properties.
             * @param [properties] Properties to set
             * @returns MethodSettings instance
             */
            public static create(properties?: google.api.IMethodSettings): google.api.MethodSettings;

            /**
             * Encodes the specified MethodSettings message. Does not implicitly {@link google.api.MethodSettings.verify|verify} messages.
             * @param message MethodSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.api.IMethodSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified MethodSettings message, length delimited. Does not implicitly {@link google.api.MethodSettings.verify|verify} messages.
             * @param message MethodSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.api.IMethodSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a MethodSettings message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns MethodSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.MethodSettings;

            /**
             * Decodes a MethodSettings message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns MethodSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.MethodSettings;

            /**
             * Verifies a MethodSettings message.
             * @param message Plain 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 MethodSettings message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns MethodSettings
             */
            public static fromObject(object: { [k: string]: any }): google.api.MethodSettings;

            /**
             * Creates a plain object from a MethodSettings message. Also converts values to other types if specified.
             * @param message MethodSettings
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.api.MethodSettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this MethodSettings to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for MethodSettings
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        namespace MethodSettings {

            /** Properties of a LongRunning. */
            interface ILongRunning {

                /** LongRunning initialPollDelay */
                initialPollDelay?: (google.protobuf.IDuration|null);

                /** LongRunning pollDelayMultiplier */
                pollDelayMultiplier?: (number|null);

                /** LongRunning maxPollDelay */
                maxPollDelay?: (google.protobuf.IDuration|null);

                /** LongRunning totalPollTimeout */
                totalPollTimeout?: (google.protobuf.IDuration|null);
            }

            /** Represents a LongRunning. */
            class LongRunning implements ILongRunning {

                /**
                 * Constructs a new LongRunning.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.api.MethodSettings.ILongRunning);

                /** LongRunning initialPollDelay. */
                public initialPollDelay?: (google.protobuf.IDuration|null);

                /** LongRunning pollDelayMultiplier. */
                public pollDelayMultiplier: number;

                /** LongRunning maxPollDelay. */
                public maxPollDelay?: (google.protobuf.IDuration|null);

                /** LongRunning totalPollTimeout. */
                public totalPollTimeout?: (google.protobuf.IDuration|null);

                /**
                 * Creates a new LongRunning instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns LongRunning instance
                 */
                public static create(properties?: google.api.MethodSettings.ILongRunning): google.api.MethodSettings.LongRunning;

                /**
                 * Encodes the specified LongRunning message. Does not implicitly {@link google.api.MethodSettings.LongRunning.verify|verify} messages.
                 * @param message LongRunning message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.api.MethodSettings.ILongRunning, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified LongRunning message, length delimited. Does not implicitly {@link google.api.MethodSettings.LongRunning.verify|verify} messages.
                 * @param message LongRunning message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.api.MethodSettings.ILongRunning, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a LongRunning message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns LongRunning
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.MethodSettings.LongRunning;

                /**
                 * Decodes a LongRunning message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns LongRunning
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.MethodSettings.LongRunning;

                /**
                 * Verifies a LongRunning message.
                 * @param message Plain 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 LongRunning message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns LongRunning
                 */
                public static fromObject(object: { [k: string]: any }): google.api.MethodSettings.LongRunning;

                /**
                 * Creates a plain object from a LongRunning message. Also converts values to other types if specified.
                 * @param message LongRunning
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.api.MethodSettings.LongRunning, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this LongRunning to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for LongRunning
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }
        }

        /** ClientLibraryOrganization enum. */
        enum ClientLibraryOrganization {
            CLIENT_LIBRARY_ORGANIZATION_UNSPECIFIED = 0,
            CLOUD = 1,
            ADS = 2,
            PHOTOS = 3,
            STREET_VIEW = 4,
            SHOPPING = 5,
            GEO = 6,
            GENERATIVE_AI = 7
        }

        /** ClientLibraryDestination enum. */
        enum ClientLibraryDestination {
            CLIENT_LIBRARY_DESTINATION_UNSPECIFIED = 0,
            GITHUB = 10,
            PACKAGE_MANAGER = 20
        }

        /** LaunchStage enum. */
        enum LaunchStage {
            LAUNCH_STAGE_UNSPECIFIED = 0,
            UNIMPLEMENTED = 6,
            PRELAUNCH = 7,
            EARLY_ACCESS = 1,
            ALPHA = 2,
            BETA = 3,
            GA = 4,
            DEPRECATED = 5
        }

        /** FieldBehavior enum. */
        enum FieldBehavior {
            FIELD_BEHAVIOR_UNSPECIFIED = 0,
            OPTIONAL = 1,
            REQUIRED = 2,
            OUTPUT_ONLY = 3,
            INPUT_ONLY = 4,
            IMMUTABLE = 5,
            UNORDERED_LIST = 6,
            NON_EMPTY_DEFAULT = 7,
            IDENTIFIER = 8
        }

        /** Properties of a FieldInfo. */
        interface IFieldInfo {

            /** FieldInfo format */
            format?: (google.api.FieldInfo.Format|keyof typeof google.api.FieldInfo.Format|null);
        }

        /** Represents a FieldInfo. */
        class FieldInfo implements IFieldInfo {

            /**
             * Constructs a new FieldInfo.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.api.IFieldInfo);

            /** FieldInfo format. */
            public format: (google.api.FieldInfo.Format|keyof typeof google.api.FieldInfo.Format);

            /**
             * Creates a new FieldInfo instance using the specified properties.
             * @param [properties] Properties to set
             * @returns FieldInfo instance
             */
            public static create(properties?: google.api.IFieldInfo): google.api.FieldInfo;

            /**
             * Encodes the specified FieldInfo message. Does not implicitly {@link google.api.FieldInfo.verify|verify} messages.
             * @param message FieldInfo message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.api.IFieldInfo, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified FieldInfo message, length delimited. Does not implicitly {@link google.api.FieldInfo.verify|verify} messages.
             * @param message FieldInfo message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.api.IFieldInfo, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a FieldInfo message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns FieldInfo
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.FieldInfo;

            /**
             * Decodes a FieldInfo message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns FieldInfo
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.FieldInfo;

            /**
             * Verifies a FieldInfo message.
             * @param message Plain 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 FieldInfo message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns FieldInfo
             */
            public static fromObject(object: { [k: string]: any }): google.api.FieldInfo;

            /**
             * Creates a plain object from a FieldInfo message. Also converts values to other types if specified.
             * @param message FieldInfo
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.api.FieldInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this FieldInfo to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for FieldInfo
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        namespace FieldInfo {

            /** Format enum. */
            enum Format {
                FORMAT_UNSPECIFIED = 0,
                UUID4 = 1,
                IPV4 = 2,
                IPV6 = 3,
                IPV4_OR_IPV6 = 4
            }
        }

        /** Properties of a ResourceDescriptor. */
        interface IResourceDescriptor {

            /** ResourceDescriptor type */
            type?: (string|null);

            /** ResourceDescriptor pattern */
            pattern?: (string[]|null);

            /** ResourceDescriptor nameField */
            nameField?: (string|null);

            /** ResourceDescriptor history */
            history?: (google.api.ResourceDescriptor.History|keyof typeof google.api.ResourceDescriptor.History|null);

            /** ResourceDescriptor plural */
            plural?: (string|null);

            /** ResourceDescriptor singular */
            singular?: (string|null);

            /** ResourceDescriptor style */
            style?: (google.api.ResourceDescriptor.Style[]|null);
        }

        /** Represents a ResourceDescriptor. */
        class ResourceDescriptor implements IResourceDescriptor {

            /**
             * Constructs a new ResourceDescriptor.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.api.IResourceDescriptor);

            /** ResourceDescriptor type. */
            public type: string;

            /** ResourceDescriptor pattern. */
            public pattern: string[];

            /** ResourceDescriptor nameField. */
            public nameField: string;

            /** ResourceDescriptor history. */
            public history: (google.api.ResourceDescriptor.History|keyof typeof google.api.ResourceDescriptor.History);

            /** ResourceDescriptor plural. */
            public plural: string;

            /** ResourceDescriptor singular. */
            public singular: string;

            /** ResourceDescriptor style. */
            public style: google.api.ResourceDescriptor.Style[];

            /**
             * Creates a new ResourceDescriptor instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ResourceDescriptor instance
             */
            public static create(properties?: google.api.IResourceDescriptor): google.api.ResourceDescriptor;

            /**
             * Encodes the specified ResourceDescriptor message. Does not implicitly {@link google.api.ResourceDescriptor.verify|verify} messages.
             * @param message ResourceDescriptor message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.api.IResourceDescriptor, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ResourceDescriptor message, length delimited. Does not implicitly {@link google.api.ResourceDescriptor.verify|verify} messages.
             * @param message ResourceDescriptor message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.api.IResourceDescriptor, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a ResourceDescriptor message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ResourceDescriptor
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.ResourceDescriptor;

            /**
             * Decodes a ResourceDescriptor message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ResourceDescriptor
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.ResourceDescriptor;

            /**
             * Verifies a ResourceDescriptor message.
             * @param message Plain 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 ResourceDescriptor message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ResourceDescriptor
             */
            public static fromObject(object: { [k: string]: any }): google.api.ResourceDescriptor;

            /**
             * Creates a plain object from a ResourceDescriptor message. Also converts values to other types if specified.
             * @param message ResourceDescriptor
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.api.ResourceDescriptor, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ResourceDescriptor to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for ResourceDescriptor
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        namespace ResourceDescriptor {

            /** History enum. */
            enum History {
                HISTORY_UNSPECIFIED = 0,
                ORIGINALLY_SINGLE_PATTERN = 1,
                FUTURE_MULTI_PATTERN = 2
            }

            /** Style enum. */
            enum Style {
                STYLE_UNSPECIFIED = 0,
                DECLARATIVE_FRIENDLY = 1
            }
        }

        /** Properties of a ResourceReference. */
        interface IResourceReference {

            /** ResourceReference type */
            type?: (string|null);

            /** ResourceReference childType */
            childType?: (string|null);
        }

        /** Represents a ResourceReference. */
        class ResourceReference implements IResourceReference {

            /**
             * Constructs a new ResourceReference.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.api.IResourceReference);

            /** ResourceReference type. */
            public type: string;

            /** ResourceReference childType. */
            public childType: string;

            /**
             * Creates a new ResourceReference instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ResourceReference instance
             */
            public static create(properties?: google.api.IResourceReference): google.api.ResourceReference;

            /**
             * Encodes the specified ResourceReference message. Does not implicitly {@link google.api.ResourceReference.verify|verify} messages.
             * @param message ResourceReference message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.api.IResourceReference, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ResourceReference message, length delimited. Does not implicitly {@link google.api.ResourceReference.verify|verify} messages.
             * @param message ResourceReference message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.api.IResourceReference, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a ResourceReference message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ResourceReference
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.ResourceReference;

            /**
             * Decodes a ResourceReference message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ResourceReference
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.ResourceReference;

            /**
             * Verifies a ResourceReference message.
             * @param message Plain 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 ResourceReference message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ResourceReference
             */
            public static fromObject(object: { [k: string]: any }): google.api.ResourceReference;

            /**
             * Creates a plain object from a ResourceReference message. Also converts values to other types if specified.
             * @param message ResourceReference
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.api.ResourceReference, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ResourceReference to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for ResourceReference
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }
    }

    /** Namespace protobuf. */
    namespace protobuf {

        /** Properties of a FileDescriptorSet. */
        interface IFileDescriptorSet {

            /** FileDescriptorSet file */
            file?: (google.protobuf.IFileDescriptorProto[]|null);
        }

        /** Represents a FileDescriptorSet. */
        class FileDescriptorSet implements IFileDescriptorSet {

            /**
             * Constructs a new FileDescriptorSet.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IFileDescriptorSet);

            /** FileDescriptorSet file. */
            public file: google.protobuf.IFileDescriptorProto[];

            /**
             * Creates a new FileDescriptorSet instance using the specified properties.
             * @param [properties] Properties to set
             * @returns FileDescriptorSet instance
             */
            public static create(properties?: google.protobuf.IFileDescriptorSet): google.protobuf.FileDescriptorSet;

            /**
             * Encodes the specified FileDescriptorSet message. Does not implicitly {@link google.protobuf.FileDescriptorSet.verify|verify} messages.
             * @param message FileDescriptorSet message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IFileDescriptorSet, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified FileDescriptorSet message, length delimited. Does not implicitly {@link google.protobuf.FileDescriptorSet.verify|verify} messages.
             * @param message FileDescriptorSet message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IFileDescriptorSet, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a FileDescriptorSet message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns FileDescriptorSet
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.FileDescriptorSet;

            /**
             * Decodes a FileDescriptorSet message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns FileDescriptorSet
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.FileDescriptorSet;

            /**
             * Verifies a FileDescriptorSet message.
             * @param message Plain 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 FileDescriptorSet message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns FileDescriptorSet
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.FileDescriptorSet;

            /**
             * Creates a plain object from a FileDescriptorSet message. Also converts values to other types if specified.
             * @param message FileDescriptorSet
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.FileDescriptorSet, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this FileDescriptorSet to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for FileDescriptorSet
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Edition enum. */
        enum Edition {
            EDITION_UNKNOWN = 0,
            EDITION_PROTO2 = 998,
            EDITION_PROTO3 = 999,
            EDITION_2023 = 1000,
            EDITION_2024 = 1001,
            EDITION_1_TEST_ONLY = 1,
            EDITION_2_TEST_ONLY = 2,
            EDITION_99997_TEST_ONLY = 99997,
            EDITION_99998_TEST_ONLY = 99998,
            EDITION_99999_TEST_ONLY = 99999,
            EDITION_MAX = 2147483647
        }

        /** Properties of a FileDescriptorProto. */
        interface IFileDescriptorProto {

            /** FileDescriptorProto name */
            name?: (string|null);

            /** FileDescriptorProto package */
            "package"?: (string|null);

            /** FileDescriptorProto dependency */
            dependency?: (string[]|null);

            /** FileDescriptorProto publicDependency */
            publicDependency?: (number[]|null);

            /** FileDescriptorProto weakDependency */
            weakDependency?: (number[]|null);

            /** FileDescriptorProto messageType */
            messageType?: (google.protobuf.IDescriptorProto[]|null);

            /** FileDescriptorProto enumType */
            enumType?: (google.protobuf.IEnumDescriptorProto[]|null);

            /** FileDescriptorProto service */
            service?: (google.protobuf.IServiceDescriptorProto[]|null);

            /** FileDescriptorProto extension */
            extension?: (google.protobuf.IFieldDescriptorProto[]|null);

            /** FileDescriptorProto options */
            options?: (google.protobuf.IFileOptions|null);

            /** FileDescriptorProto sourceCodeInfo */
            sourceCodeInfo?: (google.protobuf.ISourceCodeInfo|null);

            /** FileDescriptorProto syntax */
            syntax?: (string|null);

            /** FileDescriptorProto edition */
            edition?: (google.protobuf.Edition|keyof typeof google.protobuf.Edition|null);
        }

        /** Represents a FileDescriptorProto. */
        class FileDescriptorProto implements IFileDescriptorProto {

            /**
             * Constructs a new FileDescriptorProto.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IFileDescriptorProto);

            /** FileDescriptorProto name. */
            public name: string;

            /** FileDescriptorProto package. */
            public package: string;

            /** FileDescriptorProto dependency. */
            public dependency: string[];

            /** FileDescriptorProto publicDependency. */
            public publicDependency: number[];

            /** FileDescriptorProto weakDependency. */
            public weakDependency: number[];

            /** FileDescriptorProto messageType. */
            public messageType: google.protobuf.IDescriptorProto[];

            /** FileDescriptorProto enumType. */
            public enumType: google.protobuf.IEnumDescriptorProto[];

            /** FileDescriptorProto service. */
            public service: google.protobuf.IServiceDescriptorProto[];

            /** FileDescriptorProto extension. */
            public extension: google.protobuf.IFieldDescriptorProto[];

            /** FileDescriptorProto options. */
            public options?: (google.protobuf.IFileOptions|null);

            /** FileDescriptorProto sourceCodeInfo. */
            public sourceCodeInfo?: (google.protobuf.ISourceCodeInfo|null);

            /** FileDescriptorProto syntax. */
            public syntax: string;

            /** FileDescriptorProto edition. */
            public edition: (google.protobuf.Edition|keyof typeof google.protobuf.Edition);

            /**
             * Creates a new FileDescriptorProto instance using the specified properties.
             * @param [properties] Properties to set
             * @returns FileDescriptorProto instance
             */
            public static create(properties?: google.protobuf.IFileDescriptorProto): google.protobuf.FileDescriptorProto;

            /**
             * Encodes the specified FileDescriptorProto message. Does not implicitly {@link google.protobuf.FileDescriptorProto.verify|verify} messages.
             * @param message FileDescriptorProto message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IFileDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified FileDescriptorProto message, length delimited. Does not implicitly {@link google.protobuf.FileDescriptorProto.verify|verify} messages.
             * @param message FileDescriptorProto message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IFileDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a FileDescriptorProto message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns FileDescriptorProto
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.FileDescriptorProto;

            /**
             * Decodes a FileDescriptorProto message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns FileDescriptorProto
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.FileDescriptorProto;

            /**
             * Verifies a FileDescriptorProto message.
             * @param message Plain 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 FileDescriptorProto message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns FileDescriptorProto
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.FileDescriptorProto;

            /**
             * Creates a plain object from a FileDescriptorProto message. Also converts values to other types if specified.
             * @param message FileDescriptorProto
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.FileDescriptorProto, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this FileDescriptorProto to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for FileDescriptorProto
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a DescriptorProto. */
        interface IDescriptorProto {

            /** DescriptorProto name */
            name?: (string|null);

            /** DescriptorProto field */
            field?: (google.protobuf.IFieldDescriptorProto[]|null);

            /** DescriptorProto extension */
            extension?: (google.protobuf.IFieldDescriptorProto[]|null);

            /** DescriptorProto nestedType */
            nestedType?: (google.protobuf.IDescriptorProto[]|null);

            /** DescriptorProto enumType */
            enumType?: (google.protobuf.IEnumDescriptorProto[]|null);

            /** DescriptorProto extensionRange */
            extensionRange?: (google.protobuf.DescriptorProto.IExtensionRange[]|null);

            /** DescriptorProto oneofDecl */
            oneofDecl?: (google.protobuf.IOneofDescriptorProto[]|null);

            /** DescriptorProto options */
            options?: (google.protobuf.IMessageOptions|null);

            /** DescriptorProto reservedRange */
            reservedRange?: (google.protobuf.DescriptorProto.IReservedRange[]|null);

            /** DescriptorProto reservedName */
            reservedName?: (string[]|null);
        }

        /** Represents a DescriptorProto. */
        class DescriptorProto implements IDescriptorProto {

            /**
             * Constructs a new DescriptorProto.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IDescriptorProto);

            /** DescriptorProto name. */
            public name: string;

            /** DescriptorProto field. */
            public field: google.protobuf.IFieldDescriptorProto[];

            /** DescriptorProto extension. */
            public extension: google.protobuf.IFieldDescriptorProto[];

            /** DescriptorProto nestedType. */
            public nestedType: google.protobuf.IDescriptorProto[];

            /** DescriptorProto enumType. */
            public enumType: google.protobuf.IEnumDescriptorProto[];

            /** DescriptorProto extensionRange. */
            public extensionRange: google.protobuf.DescriptorProto.IExtensionRange[];

            /** DescriptorProto oneofDecl. */
            public oneofDecl: google.protobuf.IOneofDescriptorProto[];

            /** DescriptorProto options. */
            public options?: (google.protobuf.IMessageOptions|null);

            /** DescriptorProto reservedRange. */
            public reservedRange: google.protobuf.DescriptorProto.IReservedRange[];

            /** DescriptorProto reservedName. */
            public reservedName: string[];

            /**
             * Creates a new DescriptorProto instance using the specified properties.
             * @param [properties] Properties to set
             * @returns DescriptorProto instance
             */
            public static create(properties?: google.protobuf.IDescriptorProto): google.protobuf.DescriptorProto;

            /**
             * Encodes the specified DescriptorProto message. Does not implicitly {@link google.protobuf.DescriptorProto.verify|verify} messages.
             * @param message DescriptorProto message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified DescriptorProto message, length delimited. Does not implicitly {@link google.protobuf.DescriptorProto.verify|verify} messages.
             * @param message DescriptorProto message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a DescriptorProto message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns DescriptorProto
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.DescriptorProto;

            /**
             * Decodes a DescriptorProto message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns DescriptorProto
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.DescriptorProto;

            /**
             * Verifies a DescriptorProto message.
             * @param message Plain 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 DescriptorProto message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns DescriptorProto
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.DescriptorProto;

            /**
             * Creates a plain object from a DescriptorProto message. Also converts values to other types if specified.
             * @param message DescriptorProto
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.DescriptorProto, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this DescriptorProto to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for DescriptorProto
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        namespace DescriptorProto {

            /** Properties of an ExtensionRange. */
            interface IExtensionRange {

                /** ExtensionRange start */
                start?: (number|null);

                /** ExtensionRange end */
                end?: (number|null);

                /** ExtensionRange options */
                options?: (google.protobuf.IExtensionRangeOptions|null);
            }

            /** Represents an ExtensionRange. */
            class ExtensionRange implements IExtensionRange {

                /**
                 * Constructs a new ExtensionRange.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.protobuf.DescriptorProto.IExtensionRange);

                /** ExtensionRange start. */
                public start: number;

                /** ExtensionRange end. */
                public end: number;

                /** ExtensionRange options. */
                public options?: (google.protobuf.IExtensionRangeOptions|null);

                /**
                 * Creates a new ExtensionRange instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ExtensionRange instance
                 */
                public static create(properties?: google.protobuf.DescriptorProto.IExtensionRange): google.protobuf.DescriptorProto.ExtensionRange;

                /**
                 * Encodes the specified ExtensionRange message. Does not implicitly {@link google.protobuf.DescriptorProto.ExtensionRange.verify|verify} messages.
                 * @param message ExtensionRange message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.protobuf.DescriptorProto.IExtensionRange, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified ExtensionRange message, length delimited. Does not implicitly {@link google.protobuf.DescriptorProto.ExtensionRange.verify|verify} messages.
                 * @param message ExtensionRange message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.protobuf.DescriptorProto.IExtensionRange, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes an ExtensionRange message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ExtensionRange
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.DescriptorProto.ExtensionRange;

                /**
                 * Decodes an ExtensionRange message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ExtensionRange
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.DescriptorProto.ExtensionRange;

                /**
                 * Verifies an ExtensionRange message.
                 * @param message Plain 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 ExtensionRange message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ExtensionRange
                 */
                public static fromObject(object: { [k: string]: any }): google.protobuf.DescriptorProto.ExtensionRange;

                /**
                 * Creates a plain object from an ExtensionRange message. Also converts values to other types if specified.
                 * @param message ExtensionRange
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.protobuf.DescriptorProto.ExtensionRange, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ExtensionRange to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for ExtensionRange
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a ReservedRange. */
            interface IReservedRange {

                /** ReservedRange start */
                start?: (number|null);

                /** ReservedRange end */
                end?: (number|null);
            }

            /** Represents a ReservedRange. */
            class ReservedRange implements IReservedRange {

                /**
                 * Constructs a new ReservedRange.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.protobuf.DescriptorProto.IReservedRange);

                /** ReservedRange start. */
                public start: number;

                /** ReservedRange end. */
                public end: number;

                /**
                 * Creates a new ReservedRange instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ReservedRange instance
                 */
                public static create(properties?: google.protobuf.DescriptorProto.IReservedRange): google.protobuf.DescriptorProto.ReservedRange;

                /**
                 * Encodes the specified ReservedRange message. Does not implicitly {@link google.protobuf.DescriptorProto.ReservedRange.verify|verify} messages.
                 * @param message ReservedRange message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.protobuf.DescriptorProto.IReservedRange, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified ReservedRange message, length delimited. Does not implicitly {@link google.protobuf.DescriptorProto.ReservedRange.verify|verify} messages.
                 * @param message ReservedRange message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.protobuf.DescriptorProto.IReservedRange, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a ReservedRange message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ReservedRange
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.DescriptorProto.ReservedRange;

                /**
                 * Decodes a ReservedRange message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ReservedRange
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.DescriptorProto.ReservedRange;

                /**
                 * Verifies a ReservedRange message.
                 * @param message Plain 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 ReservedRange message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ReservedRange
                 */
                public static fromObject(object: { [k: string]: any }): google.protobuf.DescriptorProto.ReservedRange;

                /**
                 * Creates a plain object from a ReservedRange message. Also converts values to other types if specified.
                 * @param message ReservedRange
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.protobuf.DescriptorProto.ReservedRange, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ReservedRange to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for ReservedRange
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }
        }

        /** Properties of an ExtensionRangeOptions. */
        interface IExtensionRangeOptions {

            /** ExtensionRangeOptions uninterpretedOption */
            uninterpretedOption?: (google.protobuf.IUninterpretedOption[]|null);

            /** ExtensionRangeOptions declaration */
            declaration?: (google.protobuf.ExtensionRangeOptions.IDeclaration[]|null);

            /** ExtensionRangeOptions features */
            features?: (google.protobuf.IFeatureSet|null);

            /** ExtensionRangeOptions verification */
            verification?: (google.protobuf.ExtensionRangeOptions.VerificationState|keyof typeof google.protobuf.ExtensionRangeOptions.VerificationState|null);
        }

        /** Represents an ExtensionRangeOptions. */
        class ExtensionRangeOptions implements IExtensionRangeOptions {

            /**
             * Constructs a new ExtensionRangeOptions.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IExtensionRangeOptions);

            /** ExtensionRangeOptions uninterpretedOption. */
            public uninterpretedOption: google.protobuf.IUninterpretedOption[];

            /** ExtensionRangeOptions declaration. */
            public declaration: google.protobuf.ExtensionRangeOptions.IDeclaration[];

            /** ExtensionRangeOptions features. */
            public features?: (google.protobuf.IFeatureSet|null);

            /** ExtensionRangeOptions verification. */
            public verification: (google.protobuf.ExtensionRangeOptions.VerificationState|keyof typeof google.protobuf.ExtensionRangeOptions.VerificationState);

            /**
             * Creates a new ExtensionRangeOptions instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ExtensionRangeOptions instance
             */
            public static create(properties?: google.protobuf.IExtensionRangeOptions): google.protobuf.ExtensionRangeOptions;

            /**
             * Encodes the specified ExtensionRangeOptions message. Does not implicitly {@link google.protobuf.ExtensionRangeOptions.verify|verify} messages.
             * @param message ExtensionRangeOptions message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IExtensionRangeOptions, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ExtensionRangeOptions message, length delimited. Does not implicitly {@link google.protobuf.ExtensionRangeOptions.verify|verify} messages.
             * @param message ExtensionRangeOptions message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IExtensionRangeOptions, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an ExtensionRangeOptions message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ExtensionRangeOptions
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.ExtensionRangeOptions;

            /**
             * Decodes an ExtensionRangeOptions message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ExtensionRangeOptions
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.ExtensionRangeOptions;

            /**
             * Verifies an ExtensionRangeOptions message.
             * @param message Plain 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 ExtensionRangeOptions message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ExtensionRangeOptions
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.ExtensionRangeOptions;

            /**
             * Creates a plain object from an ExtensionRangeOptions message. Also converts values to other types if specified.
             * @param message ExtensionRangeOptions
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.ExtensionRangeOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ExtensionRangeOptions to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for ExtensionRangeOptions
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        namespace ExtensionRangeOptions {

            /** Properties of a Declaration. */
            interface IDeclaration {

                /** Declaration number */
                number?: (number|null);

                /** Declaration fullName */
                fullName?: (string|null);

                /** Declaration type */
                type?: (string|null);

                /** Declaration reserved */
                reserved?: (boolean|null);

                /** Declaration repeated */
                repeated?: (boolean|null);
            }

            /** Represents a Declaration. */
            class Declaration implements IDeclaration {

                /**
                 * Constructs a new Declaration.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.protobuf.ExtensionRangeOptions.IDeclaration);

                /** Declaration number. */
                public number: number;

                /** Declaration fullName. */
                public fullName: string;

                /** Declaration type. */
                public type: string;

                /** Declaration reserved. */
                public reserved: boolean;

                /** Declaration repeated. */
                public repeated: boolean;

                /**
                 * Creates a new Declaration instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns Declaration instance
                 */
                public static create(properties?: google.protobuf.ExtensionRangeOptions.IDeclaration): google.protobuf.ExtensionRangeOptions.Declaration;

                /**
                 * Encodes the specified Declaration message. Does not implicitly {@link google.protobuf.ExtensionRangeOptions.Declaration.verify|verify} messages.
                 * @param message Declaration message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.protobuf.ExtensionRangeOptions.IDeclaration, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified Declaration message, length delimited. Does not implicitly {@link google.protobuf.ExtensionRangeOptions.Declaration.verify|verify} messages.
                 * @param message Declaration message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.protobuf.ExtensionRangeOptions.IDeclaration, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a Declaration message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns Declaration
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.ExtensionRangeOptions.Declaration;

                /**
                 * Decodes a Declaration message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns Declaration
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.ExtensionRangeOptions.Declaration;

                /**
                 * Verifies a Declaration message.
                 * @param message Plain 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 Declaration message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns Declaration
                 */
                public static fromObject(object: { [k: string]: any }): google.protobuf.ExtensionRangeOptions.Declaration;

                /**
                 * Creates a plain object from a Declaration message. Also converts values to other types if specified.
                 * @param message Declaration
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.protobuf.ExtensionRangeOptions.Declaration, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this Declaration to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for Declaration
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** VerificationState enum. */
            enum VerificationState {
                DECLARATION = 0,
                UNVERIFIED = 1
            }
        }

        /** Properties of a FieldDescriptorProto. */
        interface IFieldDescriptorProto {

            /** FieldDescriptorProto name */
            name?: (string|null);

            /** FieldDescriptorProto number */
            number?: (number|null);

            /** FieldDescriptorProto label */
            label?: (google.protobuf.FieldDescriptorProto.Label|keyof typeof google.protobuf.FieldDescriptorProto.Label|null);

            /** FieldDescriptorProto type */
            type?: (google.protobuf.FieldDescriptorProto.Type|keyof typeof google.protobuf.FieldDescriptorProto.Type|null);

            /** FieldDescriptorProto typeName */
            typeName?: (string|null);

            /** FieldDescriptorProto extendee */
            extendee?: (string|null);

            /** FieldDescriptorProto defaultValue */
            defaultValue?: (string|null);

            /** FieldDescriptorProto oneofIndex */
            oneofIndex?: (number|null);

            /** FieldDescriptorProto jsonName */
            jsonName?: (string|null);

            /** FieldDescriptorProto options */
            options?: (google.protobuf.IFieldOptions|null);

            /** FieldDescriptorProto proto3Optional */
            proto3Optional?: (boolean|null);
        }

        /** Represents a FieldDescriptorProto. */
        class FieldDescriptorProto implements IFieldDescriptorProto {

            /**
             * Constructs a new FieldDescriptorProto.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IFieldDescriptorProto);

            /** FieldDescriptorProto name. */
            public name: string;

            /** FieldDescriptorProto number. */
            public number: number;

            /** FieldDescriptorProto label. */
            public label: (google.protobuf.FieldDescriptorProto.Label|keyof typeof google.protobuf.FieldDescriptorProto.Label);

            /** FieldDescriptorProto type. */
            public type: (google.protobuf.FieldDescriptorProto.Type|keyof typeof google.protobuf.FieldDescriptorProto.Type);

            /** FieldDescriptorProto typeName. */
            public typeName: string;

            /** FieldDescriptorProto extendee. */
            public extendee: string;

            /** FieldDescriptorProto defaultValue. */
            public defaultValue: string;

            /** FieldDescriptorProto oneofIndex. */
            public oneofIndex: number;

            /** FieldDescriptorProto jsonName. */
            public jsonName: string;

            /** FieldDescriptorProto options. */
            public options?: (google.protobuf.IFieldOptions|null);

            /** FieldDescriptorProto proto3Optional. */
            public proto3Optional: boolean;

            /**
             * Creates a new FieldDescriptorProto instance using the specified properties.
             * @param [properties] Properties to set
             * @returns FieldDescriptorProto instance
             */
            public static create(properties?: google.protobuf.IFieldDescriptorProto): google.protobuf.FieldDescriptorProto;

            /**
             * Encodes the specified FieldDescriptorProto message. Does not implicitly {@link google.protobuf.FieldDescriptorProto.verify|verify} messages.
             * @param message FieldDescriptorProto message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IFieldDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified FieldDescriptorProto message, length delimited. Does not implicitly {@link google.protobuf.FieldDescriptorProto.verify|verify} messages.
             * @param message FieldDescriptorProto message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IFieldDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a FieldDescriptorProto message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns FieldDescriptorProto
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.FieldDescriptorProto;

            /**
             * Decodes a FieldDescriptorProto message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns FieldDescriptorProto
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.FieldDescriptorProto;

            /**
             * Verifies a FieldDescriptorProto message.
             * @param message Plain 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 FieldDescriptorProto message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns FieldDescriptorProto
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.FieldDescriptorProto;

            /**
             * Creates a plain object from a FieldDescriptorProto message. Also converts values to other types if specified.
             * @param message FieldDescriptorProto
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.FieldDescriptorProto, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this FieldDescriptorProto to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for FieldDescriptorProto
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        namespace FieldDescriptorProto {

            /** Type enum. */
            enum Type {
                TYPE_DOUBLE = 1,
                TYPE_FLOAT = 2,
                TYPE_INT64 = 3,
                TYPE_UINT64 = 4,
                TYPE_INT32 = 5,
                TYPE_FIXED64 = 6,
                TYPE_FIXED32 = 7,
                TYPE_BOOL = 8,
                TYPE_STRING = 9,
                TYPE_GROUP = 10,
                TYPE_MESSAGE = 11,
                TYPE_BYTES = 12,
                TYPE_UINT32 = 13,
                TYPE_ENUM = 14,
                TYPE_SFIXED32 = 15,
                TYPE_SFIXED64 = 16,
                TYPE_SINT32 = 17,
                TYPE_SINT64 = 18
            }

            /** Label enum. */
            enum Label {
                LABEL_OPTIONAL = 1,
                LABEL_REPEATED = 3,
                LABEL_REQUIRED = 2
            }
        }

        /** Properties of an OneofDescriptorProto. */
        interface IOneofDescriptorProto {

            /** OneofDescriptorProto name */
            name?: (string|null);

            /** OneofDescriptorProto options */
            options?: (google.protobuf.IOneofOptions|null);
        }

        /** Represents an OneofDescriptorProto. */
        class OneofDescriptorProto implements IOneofDescriptorProto {

            /**
             * Constructs a new OneofDescriptorProto.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IOneofDescriptorProto);

            /** OneofDescriptorProto name. */
            public name: string;

            /** OneofDescriptorProto options. */
            public options?: (google.protobuf.IOneofOptions|null);

            /**
             * Creates a new OneofDescriptorProto instance using the specified properties.
             * @param [properties] Properties to set
             * @returns OneofDescriptorProto instance
             */
            public static create(properties?: google.protobuf.IOneofDescriptorProto): google.protobuf.OneofDescriptorProto;

            /**
             * Encodes the specified OneofDescriptorProto message. Does not implicitly {@link google.protobuf.OneofDescriptorProto.verify|verify} messages.
             * @param message OneofDescriptorProto message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IOneofDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified OneofDescriptorProto message, length delimited. Does not implicitly {@link google.protobuf.OneofDescriptorProto.verify|verify} messages.
             * @param message OneofDescriptorProto message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IOneofDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an OneofDescriptorProto message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns OneofDescriptorProto
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.OneofDescriptorProto;

            /**
             * Decodes an OneofDescriptorProto message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns OneofDescriptorProto
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.OneofDescriptorProto;

            /**
             * Verifies an OneofDescriptorProto message.
             * @param message Plain 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 OneofDescriptorProto message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns OneofDescriptorProto
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.OneofDescriptorProto;

            /**
             * Creates a plain object from an OneofDescriptorProto message. Also converts values to other types if specified.
             * @param message OneofDescriptorProto
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.OneofDescriptorProto, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this OneofDescriptorProto to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for OneofDescriptorProto
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of an EnumDescriptorProto. */
        interface IEnumDescriptorProto {

            /** EnumDescriptorProto name */
            name?: (string|null);

            /** EnumDescriptorProto value */
            value?: (google.protobuf.IEnumValueDescriptorProto[]|null);

            /** EnumDescriptorProto options */
            options?: (google.protobuf.IEnumOptions|null);

            /** EnumDescriptorProto reservedRange */
            reservedRange?: (google.protobuf.EnumDescriptorProto.IEnumReservedRange[]|null);

            /** EnumDescriptorProto reservedName */
            reservedName?: (string[]|null);
        }

        /** Represents an EnumDescriptorProto. */
        class EnumDescriptorProto implements IEnumDescriptorProto {

            /**
             * Constructs a new EnumDescriptorProto.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IEnumDescriptorProto);

            /** EnumDescriptorProto name. */
            public name: string;

            /** EnumDescriptorProto value. */
            public value: google.protobuf.IEnumValueDescriptorProto[];

            /** EnumDescriptorProto options. */
            public options?: (google.protobuf.IEnumOptions|null);

            /** EnumDescriptorProto reservedRange. */
            public reservedRange: google.protobuf.EnumDescriptorProto.IEnumReservedRange[];

            /** EnumDescriptorProto reservedName. */
            public reservedName: string[];

            /**
             * Creates a new EnumDescriptorProto instance using the specified properties.
             * @param [properties] Properties to set
             * @returns EnumDescriptorProto instance
             */
            public static create(properties?: google.protobuf.IEnumDescriptorProto): google.protobuf.EnumDescriptorProto;

            /**
             * Encodes the specified EnumDescriptorProto message. Does not implicitly {@link google.protobuf.EnumDescriptorProto.verify|verify} messages.
             * @param message EnumDescriptorProto message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IEnumDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified EnumDescriptorProto message, length delimited. Does not implicitly {@link google.protobuf.EnumDescriptorProto.verify|verify} messages.
             * @param message EnumDescriptorProto message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IEnumDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an EnumDescriptorProto message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns EnumDescriptorProto
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.EnumDescriptorProto;

            /**
             * Decodes an EnumDescriptorProto message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns EnumDescriptorProto
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.EnumDescriptorProto;

            /**
             * Verifies an EnumDescriptorProto message.
             * @param message Plain 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 EnumDescriptorProto message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns EnumDescriptorProto
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.EnumDescriptorProto;

            /**
             * Creates a plain object from an EnumDescriptorProto message. Also converts values to other types if specified.
             * @param message EnumDescriptorProto
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.EnumDescriptorProto, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this EnumDescriptorProto to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for EnumDescriptorProto
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        namespace EnumDescriptorProto {

            /** Properties of an EnumReservedRange. */
            interface IEnumReservedRange {

                /** EnumReservedRange start */
                start?: (number|null);

                /** EnumReservedRange end */
                end?: (number|null);
            }

            /** Represents an EnumReservedRange. */
            class EnumReservedRange implements IEnumReservedRange {

                /**
                 * Constructs a new EnumReservedRange.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.protobuf.EnumDescriptorProto.IEnumReservedRange);

                /** EnumReservedRange start. */
                public start: number;

                /** EnumReservedRange end. */
                public end: number;

                /**
                 * Creates a new EnumReservedRange instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns EnumReservedRange instance
                 */
                public static create(properties?: google.protobuf.EnumDescriptorProto.IEnumReservedRange): google.protobuf.EnumDescriptorProto.EnumReservedRange;

                /**
                 * Encodes the specified EnumReservedRange message. Does not implicitly {@link google.protobuf.EnumDescriptorProto.EnumReservedRange.verify|verify} messages.
                 * @param message EnumReservedRange message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.protobuf.EnumDescriptorProto.IEnumReservedRange, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified EnumReservedRange message, length delimited. Does not implicitly {@link google.protobuf.EnumDescriptorProto.EnumReservedRange.verify|verify} messages.
                 * @param message EnumReservedRange message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.protobuf.EnumDescriptorProto.IEnumReservedRange, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes an EnumReservedRange message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns EnumReservedRange
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.EnumDescriptorProto.EnumReservedRange;

                /**
                 * Decodes an EnumReservedRange message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns EnumReservedRange
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.EnumDescriptorProto.EnumReservedRange;

                /**
                 * Verifies an EnumReservedRange message.
                 * @param message Plain 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 EnumReservedRange message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns EnumReservedRange
                 */
                public static fromObject(object: { [k: string]: any }): google.protobuf.EnumDescriptorProto.EnumReservedRange;

                /**
                 * Creates a plain object from an EnumReservedRange message. Also converts values to other types if specified.
                 * @param message EnumReservedRange
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.protobuf.EnumDescriptorProto.EnumReservedRange, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this EnumReservedRange to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for EnumReservedRange
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }
        }

        /** Properties of an EnumValueDescriptorProto. */
        interface IEnumValueDescriptorProto {

            /** EnumValueDescriptorProto name */
            name?: (string|null);

            /** EnumValueDescriptorProto number */
            number?: (number|null);

            /** EnumValueDescriptorProto options */
            options?: (google.protobuf.IEnumValueOptions|null);
        }

        /** Represents an EnumValueDescriptorProto. */
        class EnumValueDescriptorProto implements IEnumValueDescriptorProto {

            /**
             * Constructs a new EnumValueDescriptorProto.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IEnumValueDescriptorProto);

            /** EnumValueDescriptorProto name. */
            public name: string;

            /** EnumValueDescriptorProto number. */
            public number: number;

            /** EnumValueDescriptorProto options. */
            public options?: (google.protobuf.IEnumValueOptions|null);

            /**
             * Creates a new EnumValueDescriptorProto instance using the specified properties.
             * @param [properties] Properties to set
             * @returns EnumValueDescriptorProto instance
             */
            public static create(properties?: google.protobuf.IEnumValueDescriptorProto): google.protobuf.EnumValueDescriptorProto;

            /**
             * Encodes the specified EnumValueDescriptorProto message. Does not implicitly {@link google.protobuf.EnumValueDescriptorProto.verify|verify} messages.
             * @param message EnumValueDescriptorProto message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IEnumValueDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified EnumValueDescriptorProto message, length delimited. Does not implicitly {@link google.protobuf.EnumValueDescriptorProto.verify|verify} messages.
             * @param message EnumValueDescriptorProto message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IEnumValueDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an EnumValueDescriptorProto message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns EnumValueDescriptorProto
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.EnumValueDescriptorProto;

            /**
             * Decodes an EnumValueDescriptorProto message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns EnumValueDescriptorProto
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.EnumValueDescriptorProto;

            /**
             * Verifies an EnumValueDescriptorProto message.
             * @param message Plain 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 EnumValueDescriptorProto message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns EnumValueDescriptorProto
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.EnumValueDescriptorProto;

            /**
             * Creates a plain object from an EnumValueDescriptorProto message. Also converts values to other types if specified.
             * @param message EnumValueDescriptorProto
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.EnumValueDescriptorProto, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this EnumValueDescriptorProto to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for EnumValueDescriptorProto
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a ServiceDescriptorProto. */
        interface IServiceDescriptorProto {

            /** ServiceDescriptorProto name */
            name?: (string|null);

            /** ServiceDescriptorProto method */
            method?: (google.protobuf.IMethodDescriptorProto[]|null);

            /** ServiceDescriptorProto options */
            options?: (google.protobuf.IServiceOptions|null);
        }

        /** Represents a ServiceDescriptorProto. */
        class ServiceDescriptorProto implements IServiceDescriptorProto {

            /**
             * Constructs a new ServiceDescriptorProto.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IServiceDescriptorProto);

            /** ServiceDescriptorProto name. */
            public name: string;

            /** ServiceDescriptorProto method. */
            public method: google.protobuf.IMethodDescriptorProto[];

            /** ServiceDescriptorProto options. */
            public options?: (google.protobuf.IServiceOptions|null);

            /**
             * Creates a new ServiceDescriptorProto instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ServiceDescriptorProto instance
             */
            public static create(properties?: google.protobuf.IServiceDescriptorProto): google.protobuf.ServiceDescriptorProto;

            /**
             * Encodes the specified ServiceDescriptorProto message. Does not implicitly {@link google.protobuf.ServiceDescriptorProto.verify|verify} messages.
             * @param message ServiceDescriptorProto message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IServiceDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ServiceDescriptorProto message, length delimited. Does not implicitly {@link google.protobuf.ServiceDescriptorProto.verify|verify} messages.
             * @param message ServiceDescriptorProto message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IServiceDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a ServiceDescriptorProto message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ServiceDescriptorProto
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.ServiceDescriptorProto;

            /**
             * Decodes a ServiceDescriptorProto message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ServiceDescriptorProto
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.ServiceDescriptorProto;

            /**
             * Verifies a ServiceDescriptorProto message.
             * @param message Plain 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 ServiceDescriptorProto message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ServiceDescriptorProto
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.ServiceDescriptorProto;

            /**
             * Creates a plain object from a ServiceDescriptorProto message. Also converts values to other types if specified.
             * @param message ServiceDescriptorProto
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.ServiceDescriptorProto, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ServiceDescriptorProto to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for ServiceDescriptorProto
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a MethodDescriptorProto. */
        interface IMethodDescriptorProto {

            /** MethodDescriptorProto name */
            name?: (string|null);

            /** MethodDescriptorProto inputType */
            inputType?: (string|null);

            /** MethodDescriptorProto outputType */
            outputType?: (string|null);

            /** MethodDescriptorProto options */
            options?: (google.protobuf.IMethodOptions|null);

            /** MethodDescriptorProto clientStreaming */
            clientStreaming?: (boolean|null);

            /** MethodDescriptorProto serverStreaming */
            serverStreaming?: (boolean|null);
        }

        /** Represents a MethodDescriptorProto. */
        class MethodDescriptorProto implements IMethodDescriptorProto {

            /**
             * Constructs a new MethodDescriptorProto.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IMethodDescriptorProto);

            /** MethodDescriptorProto name. */
            public name: string;

            /** MethodDescriptorProto inputType. */
            public inputType: string;

            /** MethodDescriptorProto outputType. */
            public outputType: string;

            /** MethodDescriptorProto options. */
            public options?: (google.protobuf.IMethodOptions|null);

            /** MethodDescriptorProto clientStreaming. */
            public clientStreaming: boolean;

            /** MethodDescriptorProto serverStreaming. */
            public serverStreaming: boolean;

            /**
             * Creates a new MethodDescriptorProto instance using the specified properties.
             * @param [properties] Properties to set
             * @returns MethodDescriptorProto instance
             */
            public static create(properties?: google.protobuf.IMethodDescriptorProto): google.protobuf.MethodDescriptorProto;

            /**
             * Encodes the specified MethodDescriptorProto message. Does not implicitly {@link google.protobuf.MethodDescriptorProto.verify|verify} messages.
             * @param message MethodDescriptorProto message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IMethodDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified MethodDescriptorProto message, length delimited. Does not implicitly {@link google.protobuf.MethodDescriptorProto.verify|verify} messages.
             * @param message MethodDescriptorProto message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IMethodDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a MethodDescriptorProto message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns MethodDescriptorProto
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.MethodDescriptorProto;

            /**
             * Decodes a MethodDescriptorProto message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns MethodDescriptorProto
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.MethodDescriptorProto;

            /**
             * Verifies a MethodDescriptorProto message.
             * @param message Plain 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 MethodDescriptorProto message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns MethodDescriptorProto
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.MethodDescriptorProto;

            /**
             * Creates a plain object from a MethodDescriptorProto message. Also converts values to other types if specified.
             * @param message MethodDescriptorProto
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.MethodDescriptorProto, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this MethodDescriptorProto to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for MethodDescriptorProto
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a FileOptions. */
        interface IFileOptions {

            /** FileOptions javaPackage */
            javaPackage?: (string|null);

            /** FileOptions javaOuterClassname */
            javaOuterClassname?: (string|null);

            /** FileOptions javaMultipleFiles */
            javaMultipleFiles?: (boolean|null);

            /** FileOptions javaGenerateEqualsAndHash */
            javaGenerateEqualsAndHash?: (boolean|null);

            /** FileOptions javaStringCheckUtf8 */
            javaStringCheckUtf8?: (boolean|null);

            /** FileOptions optimizeFor */
            optimizeFor?: (google.protobuf.FileOptions.OptimizeMode|keyof typeof google.protobuf.FileOptions.OptimizeMode|null);

            /** FileOptions goPackage */
            goPackage?: (string|null);

            /** FileOptions ccGenericServices */
            ccGenericServices?: (boolean|null);

            /** FileOptions javaGenericServices */
            javaGenericServices?: (boolean|null);

            /** FileOptions pyGenericServices */
            pyGenericServices?: (boolean|null);

            /** FileOptions deprecated */
            deprecated?: (boolean|null);

            /** FileOptions ccEnableArenas */
            ccEnableArenas?: (boolean|null);

            /** FileOptions objcClassPrefix */
            objcClassPrefix?: (string|null);

            /** FileOptions csharpNamespace */
            csharpNamespace?: (string|null);

            /** FileOptions swiftPrefix */
            swiftPrefix?: (string|null);

            /** FileOptions phpClassPrefix */
            phpClassPrefix?: (string|null);

            /** FileOptions phpNamespace */
            phpNamespace?: (string|null);

            /** FileOptions phpMetadataNamespace */
            phpMetadataNamespace?: (string|null);

            /** FileOptions rubyPackage */
            rubyPackage?: (string|null);

            /** FileOptions features */
            features?: (google.protobuf.IFeatureSet|null);

            /** FileOptions uninterpretedOption */
            uninterpretedOption?: (google.protobuf.IUninterpretedOption[]|null);

            /** FileOptions .google.api.resourceDefinition */
            ".google.api.resourceDefinition"?: (google.api.IResourceDescriptor[]|null);
        }

        /** Represents a FileOptions. */
        class FileOptions implements IFileOptions {

            /**
             * Constructs a new FileOptions.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IFileOptions);

            /** FileOptions javaPackage. */
            public javaPackage: string;

            /** FileOptions javaOuterClassname. */
            public javaOuterClassname: string;

            /** FileOptions javaMultipleFiles. */
            public javaMultipleFiles: boolean;

            /** FileOptions javaGenerateEqualsAndHash. */
            public javaGenerateEqualsAndHash: boolean;

            /** FileOptions javaStringCheckUtf8. */
            public javaStringCheckUtf8: boolean;

            /** FileOptions optimizeFor. */
            public optimizeFor: (google.protobuf.FileOptions.OptimizeMode|keyof typeof google.protobuf.FileOptions.OptimizeMode);

            /** FileOptions goPackage. */
            public goPackage: string;

            /** FileOptions ccGenericServices. */
            public ccGenericServices: boolean;

            /** FileOptions javaGenericServices. */
            public javaGenericServices: boolean;

            /** FileOptions pyGenericServices. */
            public pyGenericServices: boolean;

            /** FileOptions deprecated. */
            public deprecated: boolean;

            /** FileOptions ccEnableArenas. */
            public ccEnableArenas: boolean;

            /** FileOptions objcClassPrefix. */
            public objcClassPrefix: string;

            /** FileOptions csharpNamespace. */
            public csharpNamespace: string;

            /** FileOptions swiftPrefix. */
            public swiftPrefix: string;

            /** FileOptions phpClassPrefix. */
            public phpClassPrefix: string;

            /** FileOptions phpNamespace. */
            public phpNamespace: string;

            /** FileOptions phpMetadataNamespace. */
            public phpMetadataNamespace: string;

            /** FileOptions rubyPackage. */
            public rubyPackage: string;

            /** FileOptions features. */
            public features?: (google.protobuf.IFeatureSet|null);

            /** FileOptions uninterpretedOption. */
            public uninterpretedOption: google.protobuf.IUninterpretedOption[];

            /**
             * Creates a new FileOptions instance using the specified properties.
             * @param [properties] Properties to set
             * @returns FileOptions instance
             */
            public static create(properties?: google.protobuf.IFileOptions): google.protobuf.FileOptions;

            /**
             * Encodes the specified FileOptions message. Does not implicitly {@link google.protobuf.FileOptions.verify|verify} messages.
             * @param message FileOptions message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IFileOptions, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified FileOptions message, length delimited. Does not implicitly {@link google.protobuf.FileOptions.verify|verify} messages.
             * @param message FileOptions message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IFileOptions, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a FileOptions message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns FileOptions
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.FileOptions;

            /**
             * Decodes a FileOptions message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns FileOptions
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.FileOptions;

            /**
             * Verifies a FileOptions message.
             * @param message Plain 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 FileOptions message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns FileOptions
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.FileOptions;

            /**
             * Creates a plain object from a FileOptions message. Also converts values to other types if specified.
             * @param message FileOptions
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.FileOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this FileOptions to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for FileOptions
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        namespace FileOptions {

            /** OptimizeMode enum. */
            enum OptimizeMode {
                SPEED = 1,
                CODE_SIZE = 2,
                LITE_RUNTIME = 3
            }
        }

        /** Properties of a MessageOptions. */
        interface IMessageOptions {

            /** MessageOptions messageSetWireFormat */
            messageSetWireFormat?: (boolean|null);

            /** MessageOptions noStandardDescriptorAccessor */
            noStandardDescriptorAccessor?: (boolean|null);

            /** MessageOptions deprecated */
            deprecated?: (boolean|null);

            /** MessageOptions mapEntry */
            mapEntry?: (boolean|null);

            /** MessageOptions deprecatedLegacyJsonFieldConflicts */
            deprecatedLegacyJsonFieldConflicts?: (boolean|null);

            /** MessageOptions features */
            features?: (google.protobuf.IFeatureSet|null);

            /** MessageOptions uninterpretedOption */
            uninterpretedOption?: (google.protobuf.IUninterpretedOption[]|null);

            /** MessageOptions .google.api.resource */
            ".google.api.resource"?: (google.api.IResourceDescriptor|null);
        }

        /** Represents a MessageOptions. */
        class MessageOptions implements IMessageOptions {

            /**
             * Constructs a new MessageOptions.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IMessageOptions);

            /** MessageOptions messageSetWireFormat. */
            public messageSetWireFormat: boolean;

            /** MessageOptions noStandardDescriptorAccessor. */
            public noStandardDescriptorAccessor: boolean;

            /** MessageOptions deprecated. */
            public deprecated: boolean;

            /** MessageOptions mapEntry. */
            public mapEntry: boolean;

            /** MessageOptions deprecatedLegacyJsonFieldConflicts. */
            public deprecatedLegacyJsonFieldConflicts: boolean;

            /** MessageOptions features. */
            public features?: (google.protobuf.IFeatureSet|null);

            /** MessageOptions uninterpretedOption. */
            public uninterpretedOption: google.protobuf.IUninterpretedOption[];

            /**
             * Creates a new MessageOptions instance using the specified properties.
             * @param [properties] Properties to set
             * @returns MessageOptions instance
             */
            public static create(properties?: google.protobuf.IMessageOptions): google.protobuf.MessageOptions;

            /**
             * Encodes the specified MessageOptions message. Does not implicitly {@link google.protobuf.MessageOptions.verify|verify} messages.
             * @param message MessageOptions message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IMessageOptions, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified MessageOptions message, length delimited. Does not implicitly {@link google.protobuf.MessageOptions.verify|verify} messages.
             * @param message MessageOptions message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IMessageOptions, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a MessageOptions message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns MessageOptions
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.MessageOptions;

            /**
             * Decodes a MessageOptions message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns MessageOptions
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.MessageOptions;

            /**
             * Verifies a MessageOptions message.
             * @param message Plain 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 MessageOptions message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns MessageOptions
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.MessageOptions;

            /**
             * Creates a plain object from a MessageOptions message. Also converts values to other types if specified.
             * @param message MessageOptions
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.MessageOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this MessageOptions to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for MessageOptions
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a FieldOptions. */
        interface IFieldOptions {

            /** FieldOptions ctype */
            ctype?: (google.protobuf.FieldOptions.CType|keyof typeof google.protobuf.FieldOptions.CType|null);

            /** FieldOptions packed */
            packed?: (boolean|null);

            /** FieldOptions jstype */
            jstype?: (google.protobuf.FieldOptions.JSType|keyof typeof google.protobuf.FieldOptions.JSType|null);

            /** FieldOptions lazy */
            lazy?: (boolean|null);

            /** FieldOptions unverifiedLazy */
            unverifiedLazy?: (boolean|null);

            /** FieldOptions deprecated */
            deprecated?: (boolean|null);

            /** FieldOptions weak */
            weak?: (boolean|null);

            /** FieldOptions debugRedact */
            debugRedact?: (boolean|null);

            /** FieldOptions retention */
            retention?: (google.protobuf.FieldOptions.OptionRetention|keyof typeof google.protobuf.FieldOptions.OptionRetention|null);

            /** FieldOptions targets */
            targets?: (google.protobuf.FieldOptions.OptionTargetType[]|null);

            /** FieldOptions editionDefaults */
            editionDefaults?: (google.protobuf.FieldOptions.IEditionDefault[]|null);

            /** FieldOptions features */
            features?: (google.protobuf.IFeatureSet|null);

            /** FieldOptions uninterpretedOption */
            uninterpretedOption?: (google.protobuf.IUninterpretedOption[]|null);

            /** FieldOptions .google.api.fieldBehavior */
            ".google.api.fieldBehavior"?: (google.api.FieldBehavior[]|null);

            /** FieldOptions .google.api.fieldInfo */
            ".google.api.fieldInfo"?: (google.api.IFieldInfo|null);

            /** FieldOptions .google.api.resourceReference */
            ".google.api.resourceReference"?: (google.api.IResourceReference|null);
        }

        /** Represents a FieldOptions. */
        class FieldOptions implements IFieldOptions {

            /**
             * Constructs a new FieldOptions.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IFieldOptions);

            /** FieldOptions ctype. */
            public ctype: (google.protobuf.FieldOptions.CType|keyof typeof google.protobuf.FieldOptions.CType);

            /** FieldOptions packed. */
            public packed: boolean;

            /** FieldOptions jstype. */
            public jstype: (google.protobuf.FieldOptions.JSType|keyof typeof google.protobuf.FieldOptions.JSType);

            /** FieldOptions lazy. */
            public lazy: boolean;

            /** FieldOptions unverifiedLazy. */
            public unverifiedLazy: boolean;

            /** FieldOptions deprecated. */
            public deprecated: boolean;

            /** FieldOptions weak. */
            public weak: boolean;

            /** FieldOptions debugRedact. */
            public debugRedact: boolean;

            /** FieldOptions retention. */
            public retention: (google.protobuf.FieldOptions.OptionRetention|keyof typeof google.protobuf.FieldOptions.OptionRetention);

            /** FieldOptions targets. */
            public targets: google.protobuf.FieldOptions.OptionTargetType[];

            /** FieldOptions editionDefaults. */
            public editionDefaults: google.protobuf.FieldOptions.IEditionDefault[];

            /** FieldOptions features. */
            public features?: (google.protobuf.IFeatureSet|null);

            /** FieldOptions uninterpretedOption. */
            public uninterpretedOption: google.protobuf.IUninterpretedOption[];

            /**
             * Creates a new FieldOptions instance using the specified properties.
             * @param [properties] Properties to set
             * @returns FieldOptions instance
             */
            public static create(properties?: google.protobuf.IFieldOptions): google.protobuf.FieldOptions;

            /**
             * Encodes the specified FieldOptions message. Does not implicitly {@link google.protobuf.FieldOptions.verify|verify} messages.
             * @param message FieldOptions message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IFieldOptions, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified FieldOptions message, length delimited. Does not implicitly {@link google.protobuf.FieldOptions.verify|verify} messages.
             * @param message FieldOptions message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IFieldOptions, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a FieldOptions message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns FieldOptions
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.FieldOptions;

            /**
             * Decodes a FieldOptions message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns FieldOptions
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.FieldOptions;

            /**
             * Verifies a FieldOptions message.
             * @param message Plain 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 FieldOptions message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns FieldOptions
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.FieldOptions;

            /**
             * Creates a plain object from a FieldOptions message. Also converts values to other types if specified.
             * @param message FieldOptions
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.FieldOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this FieldOptions to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for FieldOptions
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        namespace FieldOptions {

            /** CType enum. */
            enum CType {
                STRING = 0,
                CORD = 1,
                STRING_PIECE = 2
            }

            /** JSType enum. */
            enum JSType {
                JS_NORMAL = 0,
                JS_STRING = 1,
                JS_NUMBER = 2
            }

            /** OptionRetention enum. */
            enum OptionRetention {
                RETENTION_UNKNOWN = 0,
                RETENTION_RUNTIME = 1,
                RETENTION_SOURCE = 2
            }

            /** OptionTargetType enum. */
            enum OptionTargetType {
                TARGET_TYPE_UNKNOWN = 0,
                TARGET_TYPE_FILE = 1,
                TARGET_TYPE_EXTENSION_RANGE = 2,
                TARGET_TYPE_MESSAGE = 3,
                TARGET_TYPE_FIELD = 4,
                TARGET_TYPE_ONEOF = 5,
                TARGET_TYPE_ENUM = 6,
                TARGET_TYPE_ENUM_ENTRY = 7,
                TARGET_TYPE_SERVICE = 8,
                TARGET_TYPE_METHOD = 9
            }

            /** Properties of an EditionDefault. */
            interface IEditionDefault {

                /** EditionDefault edition */
                edition?: (google.protobuf.Edition|keyof typeof google.protobuf.Edition|null);

                /** EditionDefault value */
                value?: (string|null);
            }

            /** Represents an EditionDefault. */
            class EditionDefault implements IEditionDefault {

                /**
                 * Constructs a new EditionDefault.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.protobuf.FieldOptions.IEditionDefault);

                /** EditionDefault edition. */
                public edition: (google.protobuf.Edition|keyof typeof google.protobuf.Edition);

                /** EditionDefault value. */
                public value: string;

                /**
                 * Creates a new EditionDefault instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns EditionDefault instance
                 */
                public static create(properties?: google.protobuf.FieldOptions.IEditionDefault): google.protobuf.FieldOptions.EditionDefault;

                /**
                 * Encodes the specified EditionDefault message. Does not implicitly {@link google.protobuf.FieldOptions.EditionDefault.verify|verify} messages.
                 * @param message EditionDefault message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.protobuf.FieldOptions.IEditionDefault, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified EditionDefault message, length delimited. Does not implicitly {@link google.protobuf.FieldOptions.EditionDefault.verify|verify} messages.
                 * @param message EditionDefault message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.protobuf.FieldOptions.IEditionDefault, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes an EditionDefault message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns EditionDefault
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.FieldOptions.EditionDefault;

                /**
                 * Decodes an EditionDefault message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns EditionDefault
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.FieldOptions.EditionDefault;

                /**
                 * Verifies an EditionDefault message.
                 * @param message Plain 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 EditionDefault message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns EditionDefault
                 */
                public static fromObject(object: { [k: string]: any }): google.protobuf.FieldOptions.EditionDefault;

                /**
                 * Creates a plain object from an EditionDefault message. Also converts values to other types if specified.
                 * @param message EditionDefault
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.protobuf.FieldOptions.EditionDefault, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this EditionDefault to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for EditionDefault
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }
        }

        /** Properties of an OneofOptions. */
        interface IOneofOptions {

            /** OneofOptions features */
            features?: (google.protobuf.IFeatureSet|null);

            /** OneofOptions uninterpretedOption */
            uninterpretedOption?: (google.protobuf.IUninterpretedOption[]|null);
        }

        /** Represents an OneofOptions. */
        class OneofOptions implements IOneofOptions {

            /**
             * Constructs a new OneofOptions.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IOneofOptions);

            /** OneofOptions features. */
            public features?: (google.protobuf.IFeatureSet|null);

            /** OneofOptions uninterpretedOption. */
            public uninterpretedOption: google.protobuf.IUninterpretedOption[];

            /**
             * Creates a new OneofOptions instance using the specified properties.
             * @param [properties] Properties to set
             * @returns OneofOptions instance
             */
            public static create(properties?: google.protobuf.IOneofOptions): google.protobuf.OneofOptions;

            /**
             * Encodes the specified OneofOptions message. Does not implicitly {@link google.protobuf.OneofOptions.verify|verify} messages.
             * @param message OneofOptions message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IOneofOptions, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified OneofOptions message, length delimited. Does not implicitly {@link google.protobuf.OneofOptions.verify|verify} messages.
             * @param message OneofOptions message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IOneofOptions, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an OneofOptions message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns OneofOptions
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.OneofOptions;

            /**
             * Decodes an OneofOptions message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns OneofOptions
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.OneofOptions;

            /**
             * Verifies an OneofOptions message.
             * @param message Plain 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 OneofOptions message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns OneofOptions
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.OneofOptions;

            /**
             * Creates a plain object from an OneofOptions message. Also converts values to other types if specified.
             * @param message OneofOptions
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.OneofOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this OneofOptions to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for OneofOptions
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of an EnumOptions. */
        interface IEnumOptions {

            /** EnumOptions allowAlias */
            allowAlias?: (boolean|null);

            /** EnumOptions deprecated */
            deprecated?: (boolean|null);

            /** EnumOptions deprecatedLegacyJsonFieldConflicts */
            deprecatedLegacyJsonFieldConflicts?: (boolean|null);

            /** EnumOptions features */
            features?: (google.protobuf.IFeatureSet|null);

            /** EnumOptions uninterpretedOption */
            uninterpretedOption?: (google.protobuf.IUninterpretedOption[]|null);
        }

        /** Represents an EnumOptions. */
        class EnumOptions implements IEnumOptions {

            /**
             * Constructs a new EnumOptions.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IEnumOptions);

            /** EnumOptions allowAlias. */
            public allowAlias: boolean;

            /** EnumOptions deprecated. */
            public deprecated: boolean;

            /** EnumOptions deprecatedLegacyJsonFieldConflicts. */
            public deprecatedLegacyJsonFieldConflicts: boolean;

            /** EnumOptions features. */
            public features?: (google.protobuf.IFeatureSet|null);

            /** EnumOptions uninterpretedOption. */
            public uninterpretedOption: google.protobuf.IUninterpretedOption[];

            /**
             * Creates a new EnumOptions instance using the specified properties.
             * @param [properties] Properties to set
             * @returns EnumOptions instance
             */
            public static create(properties?: google.protobuf.IEnumOptions): google.protobuf.EnumOptions;

            /**
             * Encodes the specified EnumOptions message. Does not implicitly {@link google.protobuf.EnumOptions.verify|verify} messages.
             * @param message EnumOptions message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IEnumOptions, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified EnumOptions message, length delimited. Does not implicitly {@link google.protobuf.EnumOptions.verify|verify} messages.
             * @param message EnumOptions message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IEnumOptions, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an EnumOptions message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns EnumOptions
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.EnumOptions;

            /**
             * Decodes an EnumOptions message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns EnumOptions
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.EnumOptions;

            /**
             * Verifies an EnumOptions message.
             * @param message Plain 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 EnumOptions message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns EnumOptions
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.EnumOptions;

            /**
             * Creates a plain object from an EnumOptions message. Also converts values to other types if specified.
             * @param message EnumOptions
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.EnumOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this EnumOptions to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for EnumOptions
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of an EnumValueOptions. */
        interface IEnumValueOptions {

            /** EnumValueOptions deprecated */
            deprecated?: (boolean|null);

            /** EnumValueOptions features */
            features?: (google.protobuf.IFeatureSet|null);

            /** EnumValueOptions debugRedact */
            debugRedact?: (boolean|null);

            /** EnumValueOptions uninterpretedOption */
            uninterpretedOption?: (google.protobuf.IUninterpretedOption[]|null);
        }

        /** Represents an EnumValueOptions. */
        class EnumValueOptions implements IEnumValueOptions {

            /**
             * Constructs a new EnumValueOptions.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IEnumValueOptions);

            /** EnumValueOptions deprecated. */
            public deprecated: boolean;

            /** EnumValueOptions features. */
            public features?: (google.protobuf.IFeatureSet|null);

            /** EnumValueOptions debugRedact. */
            public debugRedact: boolean;

            /** EnumValueOptions uninterpretedOption. */
            public uninterpretedOption: google.protobuf.IUninterpretedOption[];

            /**
             * Creates a new EnumValueOptions instance using the specified properties.
             * @param [properties] Properties to set
             * @returns EnumValueOptions instance
             */
            public static create(properties?: google.protobuf.IEnumValueOptions): google.protobuf.EnumValueOptions;

            /**
             * Encodes the specified EnumValueOptions message. Does not implicitly {@link google.protobuf.EnumValueOptions.verify|verify} messages.
             * @param message EnumValueOptions message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IEnumValueOptions, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified EnumValueOptions message, length delimited. Does not implicitly {@link google.protobuf.EnumValueOptions.verify|verify} messages.
             * @param message EnumValueOptions message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IEnumValueOptions, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an EnumValueOptions message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns EnumValueOptions
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.EnumValueOptions;

            /**
             * Decodes an EnumValueOptions message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns EnumValueOptions
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.EnumValueOptions;

            /**
             * Verifies an EnumValueOptions message.
             * @param message Plain 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 EnumValueOptions message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns EnumValueOptions
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.EnumValueOptions;

            /**
             * Creates a plain object from an EnumValueOptions message. Also converts values to other types if specified.
             * @param message EnumValueOptions
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.EnumValueOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this EnumValueOptions to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for EnumValueOptions
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a ServiceOptions. */
        interface IServiceOptions {

            /** ServiceOptions features */
            features?: (google.protobuf.IFeatureSet|null);

            /** ServiceOptions deprecated */
            deprecated?: (boolean|null);

            /** ServiceOptions uninterpretedOption */
            uninterpretedOption?: (google.protobuf.IUninterpretedOption[]|null);

            /** ServiceOptions .google.api.defaultHost */
            ".google.api.defaultHost"?: (string|null);

            /** ServiceOptions .google.api.oauthScopes */
            ".google.api.oauthScopes"?: (string|null);

            /** ServiceOptions .google.api.apiVersion */
            ".google.api.apiVersion"?: (string|null);
        }

        /** Represents a ServiceOptions. */
        class ServiceOptions implements IServiceOptions {

            /**
             * Constructs a new ServiceOptions.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IServiceOptions);

            /** ServiceOptions features. */
            public features?: (google.protobuf.IFeatureSet|null);

            /** ServiceOptions deprecated. */
            public deprecated: boolean;

            /** ServiceOptions uninterpretedOption. */
            public uninterpretedOption: google.protobuf.IUninterpretedOption[];

            /**
             * Creates a new ServiceOptions instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ServiceOptions instance
             */
            public static create(properties?: google.protobuf.IServiceOptions): google.protobuf.ServiceOptions;

            /**
             * Encodes the specified ServiceOptions message. Does not implicitly {@link google.protobuf.ServiceOptions.verify|verify} messages.
             * @param message ServiceOptions message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IServiceOptions, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ServiceOptions message, length delimited. Does not implicitly {@link google.protobuf.ServiceOptions.verify|verify} messages.
             * @param message ServiceOptions message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IServiceOptions, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a ServiceOptions message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ServiceOptions
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.ServiceOptions;

            /**
             * Decodes a ServiceOptions message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ServiceOptions
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.ServiceOptions;

            /**
             * Verifies a ServiceOptions message.
             * @param message Plain 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 ServiceOptions message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ServiceOptions
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.ServiceOptions;

            /**
             * Creates a plain object from a ServiceOptions message. Also converts values to other types if specified.
             * @param message ServiceOptions
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.ServiceOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ServiceOptions to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for ServiceOptions
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a MethodOptions. */
        interface IMethodOptions {

            /** MethodOptions deprecated */
            deprecated?: (boolean|null);

            /** MethodOptions idempotencyLevel */
            idempotencyLevel?: (google.protobuf.MethodOptions.IdempotencyLevel|keyof typeof google.protobuf.MethodOptions.IdempotencyLevel|null);

            /** MethodOptions features */
            features?: (google.protobuf.IFeatureSet|null);

            /** MethodOptions uninterpretedOption */
            uninterpretedOption?: (google.protobuf.IUninterpretedOption[]|null);

            /** MethodOptions .google.api.http */
            ".google.api.http"?: (google.api.IHttpRule|null);

            /** MethodOptions .google.api.methodSignature */
            ".google.api.methodSignature"?: (string[]|null);
        }

        /** Represents a MethodOptions. */
        class MethodOptions implements IMethodOptions {

            /**
             * Constructs a new MethodOptions.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IMethodOptions);

            /** MethodOptions deprecated. */
            public deprecated: boolean;

            /** MethodOptions idempotencyLevel. */
            public idempotencyLevel: (google.protobuf.MethodOptions.IdempotencyLevel|keyof typeof google.protobuf.MethodOptions.IdempotencyLevel);

            /** MethodOptions features. */
            public features?: (google.protobuf.IFeatureSet|null);

            /** MethodOptions uninterpretedOption. */
            public uninterpretedOption: google.protobuf.IUninterpretedOption[];

            /**
             * Creates a new MethodOptions instance using the specified properties.
             * @param [properties] Properties to set
             * @returns MethodOptions instance
             */
            public static create(properties?: google.protobuf.IMethodOptions): google.protobuf.MethodOptions;

            /**
             * Encodes the specified MethodOptions message. Does not implicitly {@link google.protobuf.MethodOptions.verify|verify} messages.
             * @param message MethodOptions message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IMethodOptions, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified MethodOptions message, length delimited. Does not implicitly {@link google.protobuf.MethodOptions.verify|verify} messages.
             * @param message MethodOptions message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IMethodOptions, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a MethodOptions message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns MethodOptions
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.MethodOptions;

            /**
             * Decodes a MethodOptions message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns MethodOptions
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.MethodOptions;

            /**
             * Verifies a MethodOptions message.
             * @param message Plain 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 MethodOptions message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns MethodOptions
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.MethodOptions;

            /**
             * Creates a plain object from a MethodOptions message. Also converts values to other types if specified.
             * @param message MethodOptions
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.MethodOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this MethodOptions to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for MethodOptions
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        namespace MethodOptions {

            /** IdempotencyLevel enum. */
            enum IdempotencyLevel {
                IDEMPOTENCY_UNKNOWN = 0,
                NO_SIDE_EFFECTS = 1,
                IDEMPOTENT = 2
            }
        }

        /** Properties of an UninterpretedOption. */
        interface IUninterpretedOption {

            /** UninterpretedOption name */
            name?: (google.protobuf.UninterpretedOption.INamePart[]|null);

            /** UninterpretedOption identifierValue */
            identifierValue?: (string|null);

            /** UninterpretedOption positiveIntValue */
            positiveIntValue?: (number|Long|string|null);

            /** UninterpretedOption negativeIntValue */
            negativeIntValue?: (number|Long|string|null);

            /** UninterpretedOption doubleValue */
            doubleValue?: (number|null);

            /** UninterpretedOption stringValue */
            stringValue?: (Uint8Array|Buffer|string|null);

            /** UninterpretedOption aggregateValue */
            aggregateValue?: (string|null);
        }

        /** Represents an UninterpretedOption. */
        class UninterpretedOption implements IUninterpretedOption {

            /**
             * Constructs a new UninterpretedOption.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IUninterpretedOption);

            /** UninterpretedOption name. */
            public name: google.protobuf.UninterpretedOption.INamePart[];

            /** UninterpretedOption identifierValue. */
            public identifierValue: string;

            /** UninterpretedOption positiveIntValue. */
            public positiveIntValue: (number|Long|string);

            /** UninterpretedOption negativeIntValue. */
            public negativeIntValue: (number|Long|string);

            /** UninterpretedOption doubleValue. */
            public doubleValue: number;

            /** UninterpretedOption stringValue. */
            public stringValue: (Uint8Array|Buffer|string);

            /** UninterpretedOption aggregateValue. */
            public aggregateValue: string;

            /**
             * Creates a new UninterpretedOption instance using the specified properties.
             * @param [properties] Properties to set
             * @returns UninterpretedOption instance
             */
            public static create(properties?: google.protobuf.IUninterpretedOption): google.protobuf.UninterpretedOption;

            /**
             * Encodes the specified UninterpretedOption message. Does not implicitly {@link google.protobuf.UninterpretedOption.verify|verify} messages.
             * @param message UninterpretedOption message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IUninterpretedOption, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified UninterpretedOption message, length delimited. Does not implicitly {@link google.protobuf.UninterpretedOption.verify|verify} messages.
             * @param message UninterpretedOption message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IUninterpretedOption, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an UninterpretedOption message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns UninterpretedOption
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.UninterpretedOption;

            /**
             * Decodes an UninterpretedOption message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns UninterpretedOption
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.UninterpretedOption;

            /**
             * Verifies an UninterpretedOption message.
             * @param message Plain 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 UninterpretedOption message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns UninterpretedOption
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.UninterpretedOption;

            /**
             * Creates a plain object from an UninterpretedOption message. Also converts values to other types if specified.
             * @param message UninterpretedOption
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.UninterpretedOption, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this UninterpretedOption to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for UninterpretedOption
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        namespace UninterpretedOption {

            /** Properties of a NamePart. */
            interface INamePart {

                /** NamePart namePart */
                namePart: string;

                /** NamePart isExtension */
                isExtension: boolean;
            }

            /** Represents a NamePart. */
            class NamePart implements INamePart {

                /**
                 * Constructs a new NamePart.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.protobuf.UninterpretedOption.INamePart);

                /** NamePart namePart. */
                public namePart: string;

                /** NamePart isExtension. */
                public isExtension: boolean;

                /**
                 * Creates a new NamePart instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns NamePart instance
                 */
                public static create(properties?: google.protobuf.UninterpretedOption.INamePart): google.protobuf.UninterpretedOption.NamePart;

                /**
                 * Encodes the specified NamePart message. Does not implicitly {@link google.protobuf.UninterpretedOption.NamePart.verify|verify} messages.
                 * @param message NamePart message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.protobuf.UninterpretedOption.INamePart, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified NamePart message, length delimited. Does not implicitly {@link google.protobuf.UninterpretedOption.NamePart.verify|verify} messages.
                 * @param message NamePart message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.protobuf.UninterpretedOption.INamePart, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a NamePart message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns NamePart
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.UninterpretedOption.NamePart;

                /**
                 * Decodes a NamePart message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns NamePart
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.UninterpretedOption.NamePart;

                /**
                 * Verifies a NamePart message.
                 * @param message Plain 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 NamePart message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns NamePart
                 */
                public static fromObject(object: { [k: string]: any }): google.protobuf.UninterpretedOption.NamePart;

                /**
                 * Creates a plain object from a NamePart message. Also converts values to other types if specified.
                 * @param message NamePart
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.protobuf.UninterpretedOption.NamePart, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this NamePart to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for NamePart
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }
        }

        /** Properties of a FeatureSet. */
        interface IFeatureSet {

            /** FeatureSet fieldPresence */
            fieldPresence?: (google.protobuf.FeatureSet.FieldPresence|keyof typeof google.protobuf.FeatureSet.FieldPresence|null);

            /** FeatureSet enumType */
            enumType?: (google.protobuf.FeatureSet.EnumType|keyof typeof google.protobuf.FeatureSet.EnumType|null);

            /** FeatureSet repeatedFieldEncoding */
            repeatedFieldEncoding?: (google.protobuf.FeatureSet.RepeatedFieldEncoding|keyof typeof google.protobuf.FeatureSet.RepeatedFieldEncoding|null);

            /** FeatureSet utf8Validation */
            utf8Validation?: (google.protobuf.FeatureSet.Utf8Validation|keyof typeof google.protobuf.FeatureSet.Utf8Validation|null);

            /** FeatureSet messageEncoding */
            messageEncoding?: (google.protobuf.FeatureSet.MessageEncoding|keyof typeof google.protobuf.FeatureSet.MessageEncoding|null);

            /** FeatureSet jsonFormat */
            jsonFormat?: (google.protobuf.FeatureSet.JsonFormat|keyof typeof google.protobuf.FeatureSet.JsonFormat|null);
        }

        /** Represents a FeatureSet. */
        class FeatureSet implements IFeatureSet {

            /**
             * Constructs a new FeatureSet.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IFeatureSet);

            /** FeatureSet fieldPresence. */
            public fieldPresence: (google.protobuf.FeatureSet.FieldPresence|keyof typeof google.protobuf.FeatureSet.FieldPresence);

            /** FeatureSet enumType. */
            public enumType: (google.protobuf.FeatureSet.EnumType|keyof typeof google.protobuf.FeatureSet.EnumType);

            /** FeatureSet repeatedFieldEncoding. */
            public repeatedFieldEncoding: (google.protobuf.FeatureSet.RepeatedFieldEncoding|keyof typeof google.protobuf.FeatureSet.RepeatedFieldEncoding);

            /** FeatureSet utf8Validation. */
            public utf8Validation: (google.protobuf.FeatureSet.Utf8Validation|keyof typeof google.protobuf.FeatureSet.Utf8Validation);

            /** FeatureSet messageEncoding. */
            public messageEncoding: (google.protobuf.FeatureSet.MessageEncoding|keyof typeof google.protobuf.FeatureSet.MessageEncoding);

            /** FeatureSet jsonFormat. */
            public jsonFormat: (google.protobuf.FeatureSet.JsonFormat|keyof typeof google.protobuf.FeatureSet.JsonFormat);

            /**
             * Creates a new FeatureSet instance using the specified properties.
             * @param [properties] Properties to set
             * @returns FeatureSet instance
             */
            public static create(properties?: google.protobuf.IFeatureSet): google.protobuf.FeatureSet;

            /**
             * Encodes the specified FeatureSet message. Does not implicitly {@link google.protobuf.FeatureSet.verify|verify} messages.
             * @param message FeatureSet message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IFeatureSet, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified FeatureSet message, length delimited. Does not implicitly {@link google.protobuf.FeatureSet.verify|verify} messages.
             * @param message FeatureSet message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IFeatureSet, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a FeatureSet message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns FeatureSet
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.FeatureSet;

            /**
             * Decodes a FeatureSet message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns FeatureSet
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.FeatureSet;

            /**
             * Verifies a FeatureSet message.
             * @param message Plain 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 FeatureSet message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns FeatureSet
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.FeatureSet;

            /**
             * Creates a plain object from a FeatureSet message. Also converts values to other types if specified.
             * @param message FeatureSet
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.FeatureSet, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this FeatureSet to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for FeatureSet
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        namespace FeatureSet {

            /** FieldPresence enum. */
            enum FieldPresence {
                FIELD_PRESENCE_UNKNOWN = 0,
                EXPLICIT = 1,
                IMPLICIT = 2,
                LEGACY_REQUIRED = 3
            }

            /** EnumType enum. */
            enum EnumType {
                ENUM_TYPE_UNKNOWN = 0,
                OPEN = 1,
                CLOSED = 2
            }

            /** RepeatedFieldEncoding enum. */
            enum RepeatedFieldEncoding {
                REPEATED_FIELD_ENCODING_UNKNOWN = 0,
                PACKED = 1,
                EXPANDED = 2
            }

            /** Utf8Validation enum. */
            enum Utf8Validation {
                UTF8_VALIDATION_UNKNOWN = 0,
                VERIFY = 2,
                NONE = 3
            }

            /** MessageEncoding enum. */
            enum MessageEncoding {
                MESSAGE_ENCODING_UNKNOWN = 0,
                LENGTH_PREFIXED = 1,
                DELIMITED = 2
            }

            /** JsonFormat enum. */
            enum JsonFormat {
                JSON_FORMAT_UNKNOWN = 0,
                ALLOW = 1,
                LEGACY_BEST_EFFORT = 2
            }
        }

        /** Properties of a FeatureSetDefaults. */
        interface IFeatureSetDefaults {

            /** FeatureSetDefaults defaults */
            defaults?: (google.protobuf.FeatureSetDefaults.IFeatureSetEditionDefault[]|null);

            /** FeatureSetDefaults minimumEdition */
            minimumEdition?: (google.protobuf.Edition|keyof typeof google.protobuf.Edition|null);

            /** FeatureSetDefaults maximumEdition */
            maximumEdition?: (google.protobuf.Edition|keyof typeof google.protobuf.Edition|null);
        }

        /** Represents a FeatureSetDefaults. */
        class FeatureSetDefaults implements IFeatureSetDefaults {

            /**
             * Constructs a new FeatureSetDefaults.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IFeatureSetDefaults);

            /** FeatureSetDefaults defaults. */
            public defaults: google.protobuf.FeatureSetDefaults.IFeatureSetEditionDefault[];

            /** FeatureSetDefaults minimumEdition. */
            public minimumEdition: (google.protobuf.Edition|keyof typeof google.protobuf.Edition);

            /** FeatureSetDefaults maximumEdition. */
            public maximumEdition: (google.protobuf.Edition|keyof typeof google.protobuf.Edition);

            /**
             * Creates a new FeatureSetDefaults instance using the specified properties.
             * @param [properties] Properties to set
             * @returns FeatureSetDefaults instance
             */
            public static create(properties?: google.protobuf.IFeatureSetDefaults): google.protobuf.FeatureSetDefaults;

            /**
             * Encodes the specified FeatureSetDefaults message. Does not implicitly {@link google.protobuf.FeatureSetDefaults.verify|verify} messages.
             * @param message FeatureSetDefaults message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IFeatureSetDefaults, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified FeatureSetDefaults message, length delimited. Does not implicitly {@link google.protobuf.FeatureSetDefaults.verify|verify} messages.
             * @param message FeatureSetDefaults message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IFeatureSetDefaults, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a FeatureSetDefaults message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns FeatureSetDefaults
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.FeatureSetDefaults;

            /**
             * Decodes a FeatureSetDefaults message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns FeatureSetDefaults
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.FeatureSetDefaults;

            /**
             * Verifies a FeatureSetDefaults message.
             * @param message Plain 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 FeatureSetDefaults message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns FeatureSetDefaults
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.FeatureSetDefaults;

            /**
             * Creates a plain object from a FeatureSetDefaults message. Also converts values to other types if specified.
             * @param message FeatureSetDefaults
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.FeatureSetDefaults, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this FeatureSetDefaults to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for FeatureSetDefaults
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        namespace FeatureSetDefaults {

            /** Properties of a FeatureSetEditionDefault. */
            interface IFeatureSetEditionDefault {

                /** FeatureSetEditionDefault edition */
                edition?: (google.protobuf.Edition|keyof typeof google.protobuf.Edition|null);

                /** FeatureSetEditionDefault features */
                features?: (google.protobuf.IFeatureSet|null);
            }

            /** Represents a FeatureSetEditionDefault. */
            class FeatureSetEditionDefault implements IFeatureSetEditionDefault {

                /**
                 * Constructs a new FeatureSetEditionDefault.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.protobuf.FeatureSetDefaults.IFeatureSetEditionDefault);

                /** FeatureSetEditionDefault edition. */
                public edition: (google.protobuf.Edition|keyof typeof google.protobuf.Edition);

                /** FeatureSetEditionDefault features. */
                public features?: (google.protobuf.IFeatureSet|null);

                /**
                 * Creates a new FeatureSetEditionDefault instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns FeatureSetEditionDefault instance
                 */
                public static create(properties?: google.protobuf.FeatureSetDefaults.IFeatureSetEditionDefault): google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault;

                /**
                 * Encodes the specified FeatureSetEditionDefault message. Does not implicitly {@link google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault.verify|verify} messages.
                 * @param message FeatureSetEditionDefault message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.protobuf.FeatureSetDefaults.IFeatureSetEditionDefault, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified FeatureSetEditionDefault message, length delimited. Does not implicitly {@link google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault.verify|verify} messages.
                 * @param message FeatureSetEditionDefault message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.protobuf.FeatureSetDefaults.IFeatureSetEditionDefault, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a FeatureSetEditionDefault message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns FeatureSetEditionDefault
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault;

                /**
                 * Decodes a FeatureSetEditionDefault message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns FeatureSetEditionDefault
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault;

                /**
                 * Verifies a FeatureSetEditionDefault message.
                 * @param message Plain 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 FeatureSetEditionDefault message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns FeatureSetEditionDefault
                 */
                public static fromObject(object: { [k: string]: any }): google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault;

                /**
                 * Creates a plain object from a FeatureSetEditionDefault message. Also converts values to other types if specified.
                 * @param message FeatureSetEditionDefault
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this FeatureSetEditionDefault to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for FeatureSetEditionDefault
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }
        }

        /** Properties of a SourceCodeInfo. */
        interface ISourceCodeInfo {

            /** SourceCodeInfo location */
            location?: (google.protobuf.SourceCodeInfo.ILocation[]|null);
        }

        /** Represents a SourceCodeInfo. */
        class SourceCodeInfo implements ISourceCodeInfo {

            /**
             * Constructs a new SourceCodeInfo.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.ISourceCodeInfo);

            /** SourceCodeInfo location. */
            public location: google.protobuf.SourceCodeInfo.ILocation[];

            /**
             * Creates a new SourceCodeInfo instance using the specified properties.
             * @param [properties] Properties to set
             * @returns SourceCodeInfo instance
             */
            public static create(properties?: google.protobuf.ISourceCodeInfo): google.protobuf.SourceCodeInfo;

            /**
             * Encodes the specified SourceCodeInfo message. Does not implicitly {@link google.protobuf.SourceCodeInfo.verify|verify} messages.
             * @param message SourceCodeInfo message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.ISourceCodeInfo, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified SourceCodeInfo message, length delimited. Does not implicitly {@link google.protobuf.SourceCodeInfo.verify|verify} messages.
             * @param message SourceCodeInfo message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.ISourceCodeInfo, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a SourceCodeInfo message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns SourceCodeInfo
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.SourceCodeInfo;

            /**
             * Decodes a SourceCodeInfo message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns SourceCodeInfo
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.SourceCodeInfo;

            /**
             * Verifies a SourceCodeInfo message.
             * @param message Plain 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 SourceCodeInfo message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns SourceCodeInfo
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.SourceCodeInfo;

            /**
             * Creates a plain object from a SourceCodeInfo message. Also converts values to other types if specified.
             * @param message SourceCodeInfo
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.SourceCodeInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this SourceCodeInfo to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for SourceCodeInfo
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        namespace SourceCodeInfo {

            /** Properties of a Location. */
            interface ILocation {

                /** Location path */
                path?: (number[]|null);

                /** Location span */
                span?: (number[]|null);

                /** Location leadingComments */
                leadingComments?: (string|null);

                /** Location trailingComments */
                trailingComments?: (string|null);

                /** Location leadingDetachedComments */
                leadingDetachedComments?: (string[]|null);
            }

            /** Represents a Location. */
            class Location implements ILocation {

                /**
                 * Constructs a new Location.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.protobuf.SourceCodeInfo.ILocation);

                /** Location path. */
                public path: number[];

                /** Location span. */
                public span: number[];

                /** Location leadingComments. */
                public leadingComments: string;

                /** Location trailingComments. */
                public trailingComments: string;

                /** Location leadingDetachedComments. */
                public leadingDetachedComments: string[];

                /**
                 * Creates a new Location instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns Location instance
                 */
                public static create(properties?: google.protobuf.SourceCodeInfo.ILocation): google.protobuf.SourceCodeInfo.Location;

                /**
                 * Encodes the specified Location message. Does not implicitly {@link google.protobuf.SourceCodeInfo.Location.verify|verify} messages.
                 * @param message Location message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.protobuf.SourceCodeInfo.ILocation, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified Location message, length delimited. Does not implicitly {@link google.protobuf.SourceCodeInfo.Location.verify|verify} messages.
                 * @param message Location message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.protobuf.SourceCodeInfo.ILocation, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a Location message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns Location
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.SourceCodeInfo.Location;

                /**
                 * Decodes a Location message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns Location
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.SourceCodeInfo.Location;

                /**
                 * Verifies a Location message.
                 * @param message Plain 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 Location message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns Location
                 */
                public static fromObject(object: { [k: string]: any }): google.protobuf.SourceCodeInfo.Location;

                /**
                 * Creates a plain object from a Location message. Also converts values to other types if specified.
                 * @param message Location
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.protobuf.SourceCodeInfo.Location, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this Location to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for Location
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }
        }

        /** Properties of a GeneratedCodeInfo. */
        interface IGeneratedCodeInfo {

            /** GeneratedCodeInfo annotation */
            annotation?: (google.protobuf.GeneratedCodeInfo.IAnnotation[]|null);
        }

        /** Represents a GeneratedCodeInfo. */
        class GeneratedCodeInfo implements IGeneratedCodeInfo {

            /**
             * Constructs a new GeneratedCodeInfo.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IGeneratedCodeInfo);

            /** GeneratedCodeInfo annotation. */
            public annotation: google.protobuf.GeneratedCodeInfo.IAnnotation[];

            /**
             * Creates a new GeneratedCodeInfo instance using the specified properties.
             * @param [properties] Properties to set
             * @returns GeneratedCodeInfo instance
             */
            public static create(properties?: google.protobuf.IGeneratedCodeInfo): google.protobuf.GeneratedCodeInfo;

            /**
             * Encodes the specified GeneratedCodeInfo message. Does not implicitly {@link google.protobuf.GeneratedCodeInfo.verify|verify} messages.
             * @param message GeneratedCodeInfo message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IGeneratedCodeInfo, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified GeneratedCodeInfo message, length delimited. Does not implicitly {@link google.protobuf.GeneratedCodeInfo.verify|verify} messages.
             * @param message GeneratedCodeInfo message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IGeneratedCodeInfo, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a GeneratedCodeInfo message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns GeneratedCodeInfo
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.GeneratedCodeInfo;

            /**
             * Decodes a GeneratedCodeInfo message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns GeneratedCodeInfo
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.GeneratedCodeInfo;

            /**
             * Verifies a GeneratedCodeInfo message.
             * @param message Plain 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 GeneratedCodeInfo message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns GeneratedCodeInfo
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.GeneratedCodeInfo;

            /**
             * Creates a plain object from a GeneratedCodeInfo message. Also converts values to other types if specified.
             * @param message GeneratedCodeInfo
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.GeneratedCodeInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this GeneratedCodeInfo to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for GeneratedCodeInfo
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        namespace GeneratedCodeInfo {

            /** Properties of an Annotation. */
            interface IAnnotation {

                /** Annotation path */
                path?: (number[]|null);

                /** Annotation sourceFile */
                sourceFile?: (string|null);

                /** Annotation begin */
                begin?: (number|null);

                /** Annotation end */
                end?: (number|null);

                /** Annotation semantic */
                semantic?: (google.protobuf.GeneratedCodeInfo.Annotation.Semantic|keyof typeof google.protobuf.GeneratedCodeInfo.Annotation.Semantic|null);
            }

            /** Represents an Annotation. */
            class Annotation implements IAnnotation {

                /**
                 * Constructs a new Annotation.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.protobuf.GeneratedCodeInfo.IAnnotation);

                /** Annotation path. */
                public path: number[];

                /** Annotation sourceFile. */
                public sourceFile: string;

                /** Annotation begin. */
                public begin: number;

                /** Annotation end. */
                public end: number;

                /** Annotation semantic. */
                public semantic: (google.protobuf.GeneratedCodeInfo.Annotation.Semantic|keyof typeof google.protobuf.GeneratedCodeInfo.Annotation.Semantic);

                /**
                 * Creates a new Annotation instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns Annotation instance
                 */
                public static create(properties?: google.protobuf.GeneratedCodeInfo.IAnnotation): google.protobuf.GeneratedCodeInfo.Annotation;

                /**
                 * Encodes the specified Annotation message. Does not implicitly {@link google.protobuf.GeneratedCodeInfo.Annotation.verify|verify} messages.
                 * @param message Annotation message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.protobuf.GeneratedCodeInfo.IAnnotation, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified Annotation message, length delimited. Does not implicitly {@link google.protobuf.GeneratedCodeInfo.Annotation.verify|verify} messages.
                 * @param message Annotation message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.protobuf.GeneratedCodeInfo.IAnnotation, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes an Annotation message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns Annotation
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.GeneratedCodeInfo.Annotation;

                /**
                 * Decodes an Annotation message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns Annotation
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.GeneratedCodeInfo.Annotation;

                /**
                 * Verifies an Annotation message.
                 * @param message Plain 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 Annotation message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns Annotation
                 */
                public static fromObject(object: { [k: string]: any }): google.protobuf.GeneratedCodeInfo.Annotation;

                /**
                 * Creates a plain object from an Annotation message. Also converts values to other types if specified.
                 * @param message Annotation
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.protobuf.GeneratedCodeInfo.Annotation, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this Annotation to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for Annotation
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace Annotation {

                /** Semantic enum. */
                enum Semantic {
                    NONE = 0,
                    SET = 1,
                    ALIAS = 2
                }
            }
        }

        /** Properties of a Duration. */
        interface IDuration {

            /** Duration seconds */
            seconds?: (number|Long|string|null);

            /** Duration nanos */
            nanos?: (number|null);
        }

        /** Represents a Duration. */
        class Duration implements IDuration {

            /**
             * Constructs a new Duration.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IDuration);

            /** Duration seconds. */
            public seconds: (number|Long|string);

            /** Duration nanos. */
            public nanos: number;

            /**
             * Creates a new Duration instance using the specified properties.
             * @param [properties] Properties to set
             * @returns Duration instance
             */
            public static create(properties?: google.protobuf.IDuration): google.protobuf.Duration;

            /**
             * Encodes the specified Duration message. Does not implicitly {@link google.protobuf.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: google.protobuf.IDuration, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified Duration message, length delimited. Does not implicitly {@link google.protobuf.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: google.protobuf.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): google.protobuf.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)): google.protobuf.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 }): google.protobuf.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: google.protobuf.Duration, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this Duration to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for Duration
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of an Empty. */
        interface IEmpty {
        }

        /** Represents an Empty. */
        class Empty implements IEmpty {

            /**
             * Constructs a new Empty.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IEmpty);

            /**
             * Creates a new Empty instance using the specified properties.
             * @param [properties] Properties to set
             * @returns Empty instance
             */
            public static create(properties?: google.protobuf.IEmpty): google.protobuf.Empty;

            /**
             * Encodes the specified Empty message. Does not implicitly {@link google.protobuf.Empty.verify|verify} messages.
             * @param message Empty message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IEmpty, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified Empty message, length delimited. Does not implicitly {@link google.protobuf.Empty.verify|verify} messages.
             * @param message Empty message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IEmpty, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an Empty message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns Empty
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.Empty;

            /**
             * Decodes an Empty message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns Empty
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.Empty;

            /**
             * Verifies an Empty message.
             * @param message Plain 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 Empty message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns Empty
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.Empty;

            /**
             * Creates a plain object from an Empty message. Also converts values to other types if specified.
             * @param message Empty
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.Empty, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this Empty to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for Empty
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a Timestamp. */
        interface ITimestamp {

            /** Timestamp seconds */
            seconds?: (number|Long|string|null);

            /** Timestamp nanos */
            nanos?: (number|null);
        }

        /** Represents a Timestamp. */
        class Timestamp implements ITimestamp {

            /**
             * Constructs a new Timestamp.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.ITimestamp);

            /** Timestamp seconds. */
            public seconds: (number|Long|string);

            /** 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?: google.protobuf.ITimestamp): google.protobuf.Timestamp;

            /**
             * Encodes the specified Timestamp message. Does not implicitly {@link google.protobuf.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: google.protobuf.ITimestamp, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified Timestamp message, length delimited. Does not implicitly {@link google.protobuf.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: google.protobuf.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): google.protobuf.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)): google.protobuf.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 }): google.protobuf.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: google.protobuf.Timestamp, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this Timestamp to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for Timestamp
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a DoubleValue. */
        interface IDoubleValue {

            /** DoubleValue value */
            value?: (number|null);
        }

        /** Represents a DoubleValue. */
        class DoubleValue implements IDoubleValue {

            /**
             * Constructs a new DoubleValue.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IDoubleValue);

            /** DoubleValue value. */
            public value: number;

            /**
             * Creates a new DoubleValue instance using the specified properties.
             * @param [properties] Properties to set
             * @returns DoubleValue instance
             */
            public static create(properties?: google.protobuf.IDoubleValue): google.protobuf.DoubleValue;

            /**
             * Encodes the specified DoubleValue message. Does not implicitly {@link google.protobuf.DoubleValue.verify|verify} messages.
             * @param message DoubleValue message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IDoubleValue, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified DoubleValue message, length delimited. Does not implicitly {@link google.protobuf.DoubleValue.verify|verify} messages.
             * @param message DoubleValue message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IDoubleValue, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a DoubleValue message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns DoubleValue
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.DoubleValue;

            /**
             * Decodes a DoubleValue message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns DoubleValue
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.DoubleValue;

            /**
             * Verifies a DoubleValue message.
             * @param message Plain 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 DoubleValue message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns DoubleValue
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.DoubleValue;

            /**
             * Creates a plain object from a DoubleValue message. Also converts values to other types if specified.
             * @param message DoubleValue
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.DoubleValue, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this DoubleValue to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for DoubleValue
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a FloatValue. */
        interface IFloatValue {

            /** FloatValue value */
            value?: (number|null);
        }

        /** Represents a FloatValue. */
        class FloatValue implements IFloatValue {

            /**
             * Constructs a new FloatValue.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IFloatValue);

            /** FloatValue value. */
            public value: number;

            /**
             * Creates a new FloatValue instance using the specified properties.
             * @param [properties] Properties to set
             * @returns FloatValue instance
             */
            public static create(properties?: google.protobuf.IFloatValue): google.protobuf.FloatValue;

            /**
             * Encodes the specified FloatValue message. Does not implicitly {@link google.protobuf.FloatValue.verify|verify} messages.
             * @param message FloatValue message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IFloatValue, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified FloatValue message, length delimited. Does not implicitly {@link google.protobuf.FloatValue.verify|verify} messages.
             * @param message FloatValue message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IFloatValue, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a FloatValue message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns FloatValue
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.FloatValue;

            /**
             * Decodes a FloatValue message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns FloatValue
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.FloatValue;

            /**
             * Verifies a FloatValue message.
             * @param message Plain 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 FloatValue message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns FloatValue
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.FloatValue;

            /**
             * Creates a plain object from a FloatValue message. Also converts values to other types if specified.
             * @param message FloatValue
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.FloatValue, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this FloatValue to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for FloatValue
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of an Int64Value. */
        interface IInt64Value {

            /** Int64Value value */
            value?: (number|Long|string|null);
        }

        /** Represents an Int64Value. */
        class Int64Value implements IInt64Value {

            /**
             * Constructs a new Int64Value.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IInt64Value);

            /** Int64Value value. */
            public value: (number|Long|string);

            /**
             * Creates a new Int64Value instance using the specified properties.
             * @param [properties] Properties to set
             * @returns Int64Value instance
             */
            public static create(properties?: google.protobuf.IInt64Value): google.protobuf.Int64Value;

            /**
             * Encodes the specified Int64Value message. Does not implicitly {@link google.protobuf.Int64Value.verify|verify} messages.
             * @param message Int64Value message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IInt64Value, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified Int64Value message, length delimited. Does not implicitly {@link google.protobuf.Int64Value.verify|verify} messages.
             * @param message Int64Value message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IInt64Value, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an Int64Value message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns Int64Value
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.Int64Value;

            /**
             * Decodes an Int64Value message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns Int64Value
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.Int64Value;

            /**
             * Verifies an Int64Value message.
             * @param message Plain 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 Int64Value message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns Int64Value
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.Int64Value;

            /**
             * Creates a plain object from an Int64Value message. Also converts values to other types if specified.
             * @param message Int64Value
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.Int64Value, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this Int64Value to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for Int64Value
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a UInt64Value. */
        interface IUInt64Value {

            /** UInt64Value value */
            value?: (number|Long|string|null);
        }

        /** Represents a UInt64Value. */
        class UInt64Value implements IUInt64Value {

            /**
             * Constructs a new UInt64Value.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IUInt64Value);

            /** UInt64Value value. */
            public value: (number|Long|string);

            /**
             * Creates a new UInt64Value instance using the specified properties.
             * @param [properties] Properties to set
             * @returns UInt64Value instance
             */
            public static create(properties?: google.protobuf.IUInt64Value): google.protobuf.UInt64Value;

            /**
             * Encodes the specified UInt64Value message. Does not implicitly {@link google.protobuf.UInt64Value.verify|verify} messages.
             * @param message UInt64Value message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IUInt64Value, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified UInt64Value message, length delimited. Does not implicitly {@link google.protobuf.UInt64Value.verify|verify} messages.
             * @param message UInt64Value message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IUInt64Value, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a UInt64Value message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns UInt64Value
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.UInt64Value;

            /**
             * Decodes a UInt64Value message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns UInt64Value
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.UInt64Value;

            /**
             * Verifies a UInt64Value message.
             * @param message Plain 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 UInt64Value message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns UInt64Value
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.UInt64Value;

            /**
             * Creates a plain object from a UInt64Value message. Also converts values to other types if specified.
             * @param message UInt64Value
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.UInt64Value, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this UInt64Value to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for UInt64Value
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of an Int32Value. */
        interface IInt32Value {

            /** Int32Value value */
            value?: (number|null);
        }

        /** Represents an Int32Value. */
        class Int32Value implements IInt32Value {

            /**
             * Constructs a new Int32Value.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IInt32Value);

            /** Int32Value value. */
            public value: number;

            /**
             * Creates a new Int32Value instance using the specified properties.
             * @param [properties] Properties to set
             * @returns Int32Value instance
             */
            public static create(properties?: google.protobuf.IInt32Value): google.protobuf.Int32Value;

            /**
             * Encodes the specified Int32Value message. Does not implicitly {@link google.protobuf.Int32Value.verify|verify} messages.
             * @param message Int32Value message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IInt32Value, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified Int32Value message, length delimited. Does not implicitly {@link google.protobuf.Int32Value.verify|verify} messages.
             * @param message Int32Value message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IInt32Value, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an Int32Value message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns Int32Value
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.Int32Value;

            /**
             * Decodes an Int32Value message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns Int32Value
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.Int32Value;

            /**
             * Verifies an Int32Value message.
             * @param message Plain 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 Int32Value message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns Int32Value
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.Int32Value;

            /**
             * Creates a plain object from an Int32Value message. Also converts values to other types if specified.
             * @param message Int32Value
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.Int32Value, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this Int32Value to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for Int32Value
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a UInt32Value. */
        interface IUInt32Value {

            /** UInt32Value value */
            value?: (number|null);
        }

        /** Represents a UInt32Value. */
        class UInt32Value implements IUInt32Value {

            /**
             * Constructs a new UInt32Value.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IUInt32Value);

            /** UInt32Value value. */
            public value: number;

            /**
             * Creates a new UInt32Value instance using the specified properties.
             * @param [properties] Properties to set
             * @returns UInt32Value instance
             */
            public static create(properties?: google.protobuf.IUInt32Value): google.protobuf.UInt32Value;

            /**
             * Encodes the specified UInt32Value message. Does not implicitly {@link google.protobuf.UInt32Value.verify|verify} messages.
             * @param message UInt32Value message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IUInt32Value, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified UInt32Value message, length delimited. Does not implicitly {@link google.protobuf.UInt32Value.verify|verify} messages.
             * @param message UInt32Value message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IUInt32Value, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a UInt32Value message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns UInt32Value
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.UInt32Value;

            /**
             * Decodes a UInt32Value message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns UInt32Value
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.UInt32Value;

            /**
             * Verifies a UInt32Value message.
             * @param message Plain 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 UInt32Value message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns UInt32Value
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.UInt32Value;

            /**
             * Creates a plain object from a UInt32Value message. Also converts values to other types if specified.
             * @param message UInt32Value
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.UInt32Value, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this UInt32Value to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for UInt32Value
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a BoolValue. */
        interface IBoolValue {

            /** BoolValue value */
            value?: (boolean|null);
        }

        /** Represents a BoolValue. */
        class BoolValue implements IBoolValue {

            /**
             * Constructs a new BoolValue.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IBoolValue);

            /** BoolValue value. */
            public value: boolean;

            /**
             * Creates a new BoolValue instance using the specified properties.
             * @param [properties] Properties to set
             * @returns BoolValue instance
             */
            public static create(properties?: google.protobuf.IBoolValue): google.protobuf.BoolValue;

            /**
             * Encodes the specified BoolValue message. Does not implicitly {@link google.protobuf.BoolValue.verify|verify} messages.
             * @param message BoolValue message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IBoolValue, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified BoolValue message, length delimited. Does not implicitly {@link google.protobuf.BoolValue.verify|verify} messages.
             * @param message BoolValue message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IBoolValue, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a BoolValue message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns BoolValue
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.BoolValue;

            /**
             * Decodes a BoolValue message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns BoolValue
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.BoolValue;

            /**
             * Verifies a BoolValue message.
             * @param message Plain 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 BoolValue message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns BoolValue
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.BoolValue;

            /**
             * Creates a plain object from a BoolValue message. Also converts values to other types if specified.
             * @param message BoolValue
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.BoolValue, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this BoolValue to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for BoolValue
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a StringValue. */
        interface IStringValue {

            /** StringValue value */
            value?: (string|null);
        }

        /** Represents a StringValue. */
        class StringValue implements IStringValue {

            /**
             * Constructs a new StringValue.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IStringValue);

            /** StringValue value. */
            public value: string;

            /**
             * Creates a new StringValue instance using the specified properties.
             * @param [properties] Properties to set
             * @returns StringValue instance
             */
            public static create(properties?: google.protobuf.IStringValue): google.protobuf.StringValue;

            /**
             * Encodes the specified StringValue message. Does not implicitly {@link google.protobuf.StringValue.verify|verify} messages.
             * @param message StringValue message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IStringValue, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified StringValue message, length delimited. Does not implicitly {@link google.protobuf.StringValue.verify|verify} messages.
             * @param message StringValue message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IStringValue, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a StringValue message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns StringValue
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.StringValue;

            /**
             * Decodes a StringValue message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns StringValue
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.StringValue;

            /**
             * Verifies a StringValue message.
             * @param message Plain 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 StringValue message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns StringValue
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.StringValue;

            /**
             * Creates a plain object from a StringValue message. Also converts values to other types if specified.
             * @param message StringValue
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.StringValue, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this StringValue to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for StringValue
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a BytesValue. */
        interface IBytesValue {

            /** BytesValue value */
            value?: (Uint8Array|Buffer|string|null);
        }

        /** Represents a BytesValue. */
        class BytesValue implements IBytesValue {

            /**
             * Constructs a new BytesValue.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IBytesValue);

            /** BytesValue value. */
            public value: (Uint8Array|Buffer|string);

            /**
             * Creates a new BytesValue instance using the specified properties.
             * @param [properties] Properties to set
             * @returns BytesValue instance
             */
            public static create(properties?: google.protobuf.IBytesValue): google.protobuf.BytesValue;

            /**
             * Encodes the specified BytesValue message. Does not implicitly {@link google.protobuf.BytesValue.verify|verify} messages.
             * @param message BytesValue message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IBytesValue, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified BytesValue message, length delimited. Does not implicitly {@link google.protobuf.BytesValue.verify|verify} messages.
             * @param message BytesValue message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IBytesValue, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a BytesValue message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns BytesValue
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.BytesValue;

            /**
             * Decodes a BytesValue message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns BytesValue
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.BytesValue;

            /**
             * Verifies a BytesValue message.
             * @param message Plain 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 BytesValue message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns BytesValue
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.BytesValue;

            /**
             * Creates a plain object from a BytesValue message. Also converts values to other types if specified.
             * @param message BytesValue
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.BytesValue, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this BytesValue to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for BytesValue
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of an Any. */
        interface IAny {

            /** Any type_url */
            type_url?: (string|null);

            /** Any value */
            value?: (Uint8Array|Buffer|string|null);
        }

        /** Represents an Any. */
        class Any implements IAny {

            /**
             * Constructs a new Any.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IAny);

            /** Any type_url. */
            public type_url: string;

            /** Any value. */
            public value: (Uint8Array|Buffer|string);

            /**
             * Creates a new Any instance using the specified properties.
             * @param [properties] Properties to set
             * @returns Any instance
             */
            public static create(properties?: google.protobuf.IAny): google.protobuf.Any;

            /**
             * Encodes the specified Any message. Does not implicitly {@link google.protobuf.Any.verify|verify} messages.
             * @param message Any message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IAny, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified Any message, length delimited. Does not implicitly {@link google.protobuf.Any.verify|verify} messages.
             * @param message Any message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IAny, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an Any message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns Any
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.Any;

            /**
             * Decodes an Any message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns Any
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.Any;

            /**
             * Verifies an Any message.
             * @param message Plain 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 Any message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns Any
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.Any;

            /**
             * Creates a plain object from an Any message. Also converts values to other types if specified.
             * @param message Any
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.Any, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this Any to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for Any
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }
    }

    /** Namespace rpc. */
    namespace rpc {

        /** Code enum. */
        enum Code {
            OK = 0,
            CANCELLED = 1,
            UNKNOWN = 2,
            INVALID_ARGUMENT = 3,
            DEADLINE_EXCEEDED = 4,
            NOT_FOUND = 5,
            ALREADY_EXISTS = 6,
            PERMISSION_DENIED = 7,
            UNAUTHENTICATED = 16,
            RESOURCE_EXHAUSTED = 8,
            FAILED_PRECONDITION = 9,
            ABORTED = 10,
            OUT_OF_RANGE = 11,
            UNIMPLEMENTED = 12,
            INTERNAL = 13,
            UNAVAILABLE = 14,
            DATA_LOSS = 15
        }

        /** Properties of a Status. */
        interface IStatus {

            /** Status code */
            code?: (number|null);

            /** Status message */
            message?: (string|null);

            /** Status details */
            details?: (google.protobuf.IAny[]|null);
        }

        /** Represents a Status. */
        class Status implements IStatus {

            /**
             * Constructs a new Status.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.rpc.IStatus);

            /** Status code. */
            public code: number;

            /** Status message. */
            public message: string;

            /** Status details. */
            public details: google.protobuf.IAny[];

            /**
             * Creates a new Status instance using the specified properties.
             * @param [properties] Properties to set
             * @returns Status instance
             */
            public static create(properties?: google.rpc.IStatus): google.rpc.Status;

            /**
             * Encodes the specified Status message. Does not implicitly {@link google.rpc.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: google.rpc.IStatus, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified Status message, length delimited. Does not implicitly {@link google.rpc.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: google.rpc.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): google.rpc.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)): google.rpc.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 }): google.rpc.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: google.rpc.Status, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this Status to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for Status
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }
    }

    /** Namespace type. */
    namespace type {

        /** Properties of a Date. */
        interface IDate {

            /** Date year */
            year?: (number|null);

            /** Date month */
            month?: (number|null);

            /** Date day */
            day?: (number|null);
        }

        /** Represents a Date. */
        class Date implements IDate {

            /**
             * Constructs a new Date.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.type.IDate);

            /** Date year. */
            public year: number;

            /** Date month. */
            public month: number;

            /** Date day. */
            public day: number;

            /**
             * Creates a new Date instance using the specified properties.
             * @param [properties] Properties to set
             * @returns Date instance
             */
            public static create(properties?: google.type.IDate): google.type.Date;

            /**
             * Encodes the specified Date message. Does not implicitly {@link google.type.Date.verify|verify} messages.
             * @param message Date message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.type.IDate, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified Date message, length delimited. Does not implicitly {@link google.type.Date.verify|verify} messages.
             * @param message Date message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.type.IDate, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a Date message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns Date
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.type.Date;

            /**
             * Decodes a Date message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns Date
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.type.Date;

            /**
             * Verifies a Date message.
             * @param message Plain 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 Date message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns Date
             */
            public static fromObject(object: { [k: string]: any }): google.type.Date;

            /**
             * Creates a plain object from a Date message. Also converts values to other types if specified.
             * @param message Date
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.type.Date, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this Date to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for Date
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a TimeOfDay. */
        interface ITimeOfDay {

            /** TimeOfDay hours */
            hours?: (number|null);

            /** TimeOfDay minutes */
            minutes?: (number|null);

            /** TimeOfDay seconds */
            seconds?: (number|null);

            /** TimeOfDay nanos */
            nanos?: (number|null);
        }

        /** Represents a TimeOfDay. */
        class TimeOfDay implements ITimeOfDay {

            /**
             * Constructs a new TimeOfDay.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.type.ITimeOfDay);

            /** TimeOfDay hours. */
            public hours: number;

            /** TimeOfDay minutes. */
            public minutes: number;

            /** TimeOfDay seconds. */
            public seconds: number;

            /** TimeOfDay nanos. */
            public nanos: number;

            /**
             * Creates a new TimeOfDay instance using the specified properties.
             * @param [properties] Properties to set
             * @returns TimeOfDay instance
             */
            public static create(properties?: google.type.ITimeOfDay): google.type.TimeOfDay;

            /**
             * Encodes the specified TimeOfDay message. Does not implicitly {@link google.type.TimeOfDay.verify|verify} messages.
             * @param message TimeOfDay message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.type.ITimeOfDay, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified TimeOfDay message, length delimited. Does not implicitly {@link google.type.TimeOfDay.verify|verify} messages.
             * @param message TimeOfDay message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.type.ITimeOfDay, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a TimeOfDay message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns TimeOfDay
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.type.TimeOfDay;

            /**
             * Decodes a TimeOfDay message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns TimeOfDay
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.type.TimeOfDay;

            /**
             * Verifies a TimeOfDay message.
             * @param message Plain 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 TimeOfDay message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns TimeOfDay
             */
            public static fromObject(object: { [k: string]: any }): google.type.TimeOfDay;

            /**
             * Creates a plain object from a TimeOfDay message. Also converts values to other types if specified.
             * @param message TimeOfDay
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.type.TimeOfDay, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this TimeOfDay to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for TimeOfDay
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }
    }
}
